home *** CD-ROM | disk | FTP | other *** search
/ F1 Licenseware / F1 Licenseware - Volume 1.iso / disks / 090.dms / 090.adf / SOURCE / punterV3.AMOS / punterV3.amosSourceCode < prev    next >
AMOS Source Code  |  1992-03-06  |  95KB  |  3,068 lines

  1. 'PUNTER  version 3.0  Design + coding Steve Bye (c)1994/95   
  2. 'Graphics Belinda Bye
  3. 'extra help Lee Bamber 
  4. 'started 29/11/94  
  5. 'finished 18th may 1995
  6. Set Buffer 60
  7.  
  8. Screen Open 0,320,256,16,Lowres
  9. Flash Off : Curs Off : Cls 0
  10.  
  11. Unpack 7 To 0
  12. While Mouse Key=0 : Wend 
  13. Fade 3
  14. Wait 30
  15. Erase 7
  16.  
  17. '
  18. '
  19. 'Enhancements to v2 4/12/94
  20. '--------------------------
  21. 'Load and save options 
  22. '
  23. 'gallop sample in race 
  24. '
  25. 'new menu system on race card
  26. '
  27. 'new title screen
  28. '
  29. 'improved race graphics, slightly! 
  30. '
  31. 'Freeze race option
  32. '
  33. 'Quick race option 
  34. '
  35. 'See horses backed during race (I keep forgetting!)  
  36. '
  37. 'Stamper thud sample on betting slip 
  38. '
  39. 'Touched up the grey horse bob's colours   
  40. '
  41. 'Amigaguide documentation also included as well as ASCII doc 
  42. 'file check on loading 
  43. 'jockey screen text alignment bugs done and few colour changes 
  44. '
  45. 'start a new game bug done 
  46. 'form book text aligment done  
  47. '
  48. '
  49. '----------v3 enhancements-----started 10th Dec 94 
  50. '
  51. 'now HD installable. Will run from anywhere
  52. '
  53. 'Animated title screen 
  54. 'cut out difficulty levels   
  55. 'improved presentation on racecard 
  56. 'bets are now in ï¿½10 and ï¿½100 stakes only for faster bets. 
  57. 'added game over screens 
  58. 'tidied up lots of text mis-alignments again 
  59. 'redone tipster and added two more tipsters, dead cert and TVman 
  60. 'prev players turn as well as next plyr on racecard menu, use left/right mouse buttons 
  61. '
  62. '18/5/95 
  63. 'CAN NOW PAY OFFExistING LOAN, PRESS R 
  64. 'better save/load can now save as many games as want on a disk 
  65. 'redone horrid green to a horrid light blue
  66. '
  67. '------------------------------------------------------------------------- 
  68. 'Break Off 
  69. Global _DIR$
  70. _DIR$=Dir$
  71. '=========================================================================== 
  72. Screen Open 0,320,200,16,Lowres
  73. Flash Off : Curs Off : Hide : Paper 0 : Cls 0
  74. Screen Hide 0
  75. _CHECKFILES
  76. '=============================== 
  77. '=      Dimension arrays       = 
  78. '=============================== 
  79.  
  80. Dim ODD(8),BTYPE(4),SF1(4),SF2(4),RF1(4),RF2(4),HB(4),BUP(4),PM(100),HLIST(25)
  81. Dim VU(25),PCASH(4),PBET(4),HCHAR$(100),FFIG$(100),TRAINER$(25),WEIGHT$(100)
  82. Dim DRW$(15),GOING$(5),HORSE$(100),H$(100),TEMP(25),HOR$(8),DIST(8),AGE(100)
  83. Dim RNNING(8),P(8),Z$(6),PTS(8),IRO(8),XB(8),LTHS(8),WINS(100),RATMET(100)
  84. Dim PSTAKE(4),FOM$(100,25),MM(100),BESTCOURSE(8),BESTDIST(8),BESTGOING(8)
  85. Dim RATING(8),RNS(100),OWN1(100),OWN2(100),OWN3(100),OWN4(100),SLIST(27)
  86. Dim JOCK$(25),J$(8),MEETING$(15),POS$(8),JR(25),JRIDE(25),JWINS(25),JJJ(25)
  87. Dim JTEMP(25),RETAINER(4),HADLOAN(4),LR(4)
  88. '==============================
  89. ' Make variables global       =
  90. '==============================
  91. Global ODD(),BTYPE(),SF1(),SF2(),RF1(),RF2(),HB(),BUP(),PM(),HLIST()
  92. Global VU(),PCASH(),PBET(),HCHAR$(),FFIG$(),TRAINER$(),WEIGHT$()
  93. Global DRW$(),GOING$(),HORSE$(),H$(),TEMP(),HOR$(),DIST(),AGE()
  94. Global RNNING(),P(),Z$(),PTS(),IRO(),XB(),LTHS(),WINS(),RATMET()
  95. Global PSTAKE(),FOM$(),MM(),BESTCOURSE(),BESTDIST(),BESTGOING()
  96. Global RATING(),RNS(),OWN1(),OWN2(),OWN3(),OWN4(),SLIST()
  97. Global JOCK$(),J$(),MEETING$(),POS$(),JR(),JRIDE(),JWINS(),JJJ(),JTEMP()
  98. Global HADLOAN(),LR()
  99. Global M$,GG$,RACENUMBER,DIFF,RNNERS,DAW$,WINPART,PLPART,RACE
  100. Global D$,GO,MEET,GOIN,PRIZEMONEY,PTURN,PLYRS,PB$,PB2$,PB3$
  101. Global HCOUNT,FIRSTLOOK,HORSESFORSALE,MEN,QUIT,HFS,P1OWNS,P2OWNS,P3OWNS
  102. Global P4OWNS,P1HR,P2HR,P3HR,P4HR,FCOUNT,SEASON,DI,P1RP,P2RP,P3RP,P4RP
  103. Global RETAINER(),P1GJ,P2GJ,P3GJ,P4GJ,GAMETYPE,WINNER,P1STOCK,P2STOCK,P3STOCK,P4STOCK
  104. Global JUSTCHECKING,P1DEAD,P2DEAD,P3DEAD,P4DEAD,M1,M2,M3,M4,REALPLAYERS
  105. '
  106. Global PB2$,BHO,VV1$,VV2$,VV3$,DC,DEADCERT,BHBDC,GIVEN
  107. '============================= 
  108. '=   Set up start vars       =   
  109. '= and call init routines    =   
  110. '============================= 
  111. BEGIN:
  112. 'need to zero all these for when start a new game is used. 
  113. '
  114. GIVEN=0 : BHBDC=0 : BHO=0 : SEASON=0 : JUSTCHECKING=0 : QUIT=0 : FCOUNT=0 : MEN=1 : HORSESFORSALE=100 : MEET=1
  115. RACE=1 : RACENUMBER=0 : PTURN=1 : P1DEAD=0 : P2DEAD=0 : P3DEAD=0 : P4DEAD=0
  116. M1=0 : M2=0 : M3=0 : M4=0 : PB$="" : PB2$="" : PB3$=""
  117. For A=1 To 4 : HB(A)=0 : BTYPE(A)=0 : PSTAKE(A)=0 : RETAINER(A)=0
  118. HADLOAN(A)=0 : PBET(A)=0 : RF1(A)=0 : RF2(A)=0 : SF1(A)=0 : SF2(A)=0
  119. Next A
  120. For A=1 To 100
  121. OWN1(A)=0 : OWN2(A)=0 : OWN3(A)=0 : OWN4(A)=0
  122. PM(A)=0 : MM(A)=0 : WINS(A)=0 : RATMET(A)=0
  123. Next A
  124. For B=1 To 25
  125. For A=1 To 100
  126. FOM$(A,B)=""
  127. Next A
  128. Next B
  129. For A=1 To 25
  130. JR(A)=0
  131. JRIDE(A)=0
  132. JWINS(A)=0
  133. Next A
  134. _LEVEL
  135. REALPLAYERS=PLYRS
  136. If PLYRS=3 Then P4DEAD=2
  137. If PLYRS=2 Then P3DEAD=2
  138. For A=1 To PLYRS : Rem set cash for each player 
  139. If DIFF=1 Then PCASH(A)=10000
  140. If DIFF=2 Then PCASH(A)=5000
  141. If DIFF=3 Then PCASH(A)=1000
  142. Next A
  143. Limit Mouse : Show On : Inc SEASON
  144.  
  145. _HORSES
  146.  
  147. '--------------------------------------------------------------------------  
  148.  
  149. '          ------------------------- 
  150. '          = The main control loop = 
  151. '          ------------------------- 
  152. Do 
  153. _SETRACE
  154.  
  155. If QUIT=1 Then Goto BEGIN
  156. _RACECARD
  157.  
  158. If QUIT=1 Then Goto BEGIN
  159. Inc RACE
  160.  
  161. For A=1 To 4 : PBET(A)=0 : Next A : Rem zero bets
  162.  
  163. Loop 
  164.  
  165.  
  166.  
  167. '      ------------------------------------------      
  168. '      =          The procedures                =    
  169. '      ------------------------------------------  
  170. Procedure _ADVERT
  171. Hide 
  172. Load Iff "punter_files/ltitle.iff",0
  173. Track Play 5
  174. Screen Hide 0
  175. Wait Vbl 
  176. Screen Open 1,320,88,32,Lowres
  177. Double Buffer 
  178. Get Sprite Palette 
  179. Colour 0,$3
  180. Flash Off : Curs Off : Hide : Cls 0
  181. Channel 1 To Bob 1
  182. AA$="Anim 0,(5,6)(6,6)(7,6)(8,6);"
  183. Bob 1,104,50,5
  184. Amal 1,AA$
  185. Wait Vbl 
  186. Amal On 
  187. Screen Show 0
  188. While Mouse Key=0
  189. Wend 
  190. For A=1 To 120
  191. Move X 1,"(1,2,2)" : Move On(1)
  192. Wait Vbl 
  193. Next A
  194. Screen Close 1
  195. Screen 0 : Fade 2
  196. Wait 28
  197. Show 
  198. Track Stop 
  199. Amal Off 
  200. Anim Off 
  201. Move Off 
  202. End Proc
  203. '==========================================
  204. 'select players/level
  205. Procedure _LEVEL
  206. _ADVERT
  207. Dim A$(4)
  208. Unpack 13 To 0
  209. _MOUSE
  210. Limit Mouse 163,84 To 400,286
  211. Ink 7,0
  212. Reserve Zone 
  213. Reserve Zone 5
  214. Set Zone 1,97,113 To 115,130 : Rem 1
  215. Set Zone 2,134,113 To 151,130 : Rem 2
  216. Set Zone 3,171,113 To 189,130 : Rem 3
  217. Set Zone 4,209,113 To 226,130 : Rem 4
  218. Set Zone 5,155,162 To 172,179
  219. Colour 7,$F
  220. Colour 8,$FFF
  221. Shift Up 10,7,8,1
  222. Show On 
  223. PLYRS=0 : DIFF=1
  224. Do 
  225. REG:
  226. K=Mouse Zone
  227. While Mouse Key=0
  228. Wend 
  229. If K<=0 or K>5 Then Goto REG
  230. Ink 7,6
  231. If K=1 Then Text 98,119,"1" : PLYRS=1 : Ink 0,6 : Text 135,119,"2" : Text 172,119,"3" : Text 209,119,"4" : Ink 7,6
  232. If K=2 Then Text 135,119,"2" : PLYRS=2 : Ink 0,6 : Text 98,119,"1" : Text 172,119,"3" : Text 209,119,"4" : Ink 7,6
  233. If K=3 Then Text 172,119,"3" : PLYRS=3 : Ink 0,6 : Text 98,119,"1" : Text 135,119,"2" : Text 209,119,"4" : Ink 7,6
  234. If K=4 Then Text 209,119,"4" : PLYRS=4 : Ink 0,6 : Text 98,119,"1" : Text 135,119,"2" : Text 172,119,"3" : Ink 7,6
  235. If K=5 Then Text 156,172,"OK" : Wait 15 : If PLYRS>0 Then Goto WIPE
  236. If K=5 and PLYRS<=0 Then Ink 0,6 : Text 156,172,"OK"
  237. '
  238. Loop 
  239. WIPE:
  240. Hide 
  241. Fade 2 : Wait 14 : Cls 0
  242. If PLYRS=1 Then Pop Proc
  243. Load "punter_files/select.abk",3
  244. Unpack 3 To 0
  245. _MOUSE
  246. Reserve Zone 
  247. Reserve Zone 5
  248. Set Zone 1,57,80 To 255,93
  249. Set Zone 2,66,102 To 246,114
  250. Set Zone 3,43,120 To 268,134
  251. Set Zone 4,35,140 To 273,154
  252. Set Zone 5,132,181 To 178,207
  253. Show On 
  254. GAMETYPE=1
  255. Ink 10,0
  256. Shift Up 10,9,10,1
  257. Box 57,80 To 255,93
  258. Ink 10,0 : Box 132,181 To 178,207
  259. DDL:
  260. K=Mouse Zone
  261. While Mouse Key=0 : Wend 
  262. If K=1 Then GAMETYPE=1 : Box 57,80 To 255,93 : Ink 0,0 : Box 66,102 To 246,114 : Box 43,120 To 268,134 : Box 35,140 To 273,154
  263. If K=2 Then GAMETYPE=2 : Box 66,102 To 246,114 : Ink 0,0 : Box 57,80 To 255,93 : Box 43,120 To 268,134 : Box 35,140 To 273,154
  264. If K=3 Then GAMETYPE=3 : Box 43,120 To 268,134 : Ink 0,0 : Box 57,80 To 255,93 : Box 66,102 To 246,114 : Box 35,140 To 273,154
  265. If K=4 Then GAMETYPE=4 : Box 35,140 To 273,154 : Ink 0,0 : Box 57,80 To 255,93 : Box 66,102 To 246,114 : Box 43,120 To 268,134
  266. If K=5 Then Goto WIPE2
  267. Ink 10,0
  268. Goto DDL
  269. WIPE2:
  270. Fade 2
  271. Wait 16
  272. 'Hide  
  273. 'Ink 0,0 
  274. 'For X=0 To 319 : Draw 0,256 To X,0 : Next 
  275. 'For Y=1 To 256 : Draw 0,256 To 319,Y : Next 
  276. End Proc
  277. '==========================================
  278. 'data initalize
  279. Procedure _HORSES
  280. Restore NAMES
  281. For A=1 To 100
  282. OWN1(A)=0 : OWN2(A)=0 : OWN3(A)=0 : OWN4(A)=0
  283. Read HORSE$(A) : Next A
  284. NAMES:
  285. Data "17 BIT BOY  ","BELLS GREY  ","JUST BOB    ","SINGING STAR","JARRAB      "
  286. Data "ART DECO    ","ROXANNE     ","F1 GOLD     ","MISTY SILKS ","NEVER SUBMIT"
  287. Data "HARDWARE PET","GLOWING JADE","TOMOS       ","SILVER WISP ","SNOW BOARD  "
  288. Data "THE CAPTAIN ","CRISPY SUN  ","DYNASTY     ","RICH STRIKE ","STONEHAM    "
  289. Data "DUPLICITY   ","EL TEL      ","ROSES GALORE","PURPLE PATCH","ALLESCA     "
  290. Data "RISKY       ","GREY DAWN   ","SAXON AXE   ","NEVER SURE  ","ELLAS PRINCE"
  291. Data "SILVER ISLE ","MISTY BUFF  ","RUN ON JACK ","BLITTER BOY "
  292. Data "LUKE WARM   ","ANDY'S FUN  ","SMARTY GREY ","LUCKY RED   ","BUNCHY FIVES"
  293. Data "COUNTRY WALK","SEQUENTIAL  ","OVERMOON    ","PETALS PRIZE","QUICK STEP  "
  294. Data "PLAYBOY     ","REG         ","SAPS GOLD   ","TOTS TOY    ","REUNITED    "
  295. Data "ACE IN ONE  ","TRIPLE DECK ","SALEM       ","KINGS JESTER","FOOLISH WAYS"
  296. Data "BLACK KNIGHT","CYLINDER    ","PASS SUNDAY ","THATCHED    ","LADYBIRD    "
  297. Data "DANDY ROY   ","KICK-EM     ","SOLID ROCK  ","HARD TIMES  ","CRYSTAL TIPS"
  298. Data "DESTINED    ","PUNTERS PAL ","WINALOT     ","SOMA KING   ","PARAGON     "
  299. Data "NO SHAME    ","BLACK WEED  ","FOLLYFOOT   ","BACKSLAP    ","CHERRY FIRE "
  300. Data "THE PUNK    ","DIAMOND DOG ","LUSTY LADY  ","SILLY STEVEN","SPACEMAKER  "
  301. Data "FUN FAIR    ","HARRYS WAY  ","WIMBLE      ","TRIGGERS BOY","G'DAY MATE  "
  302. Data "WAR HERO    ","FRONTLINE   ","BOGUS BOB   ","CHEEKY CHAP ","ONLY ME     "
  303. Data "SEATTLE SLEW","KIPPER KID  ","KINGSFOLD   ","JITTERY JIM ","SLOOPY      "
  304. Data "MORSTOCK    ","LIVE IT UP  ","DANCING BELL","WELLINGTON  ","WISHING     "
  305. Data "LAST HOME   "
  306.  
  307. For A=1 To 100 : FFIG$(A)="000000" : Next A
  308.  
  309. For A=1 To 8 : Read DIST(A) : Next A
  310. Data 5,6,7,8,10,12,14,16
  311. For A=1 To 25 : Read TRAINER$(A) : Next A
  312. Data "M.TOMPKINS","G.WRAGG   ","D.MORLEY  ","J.WATTS   ","M.BELL    ","A.STEWART "
  313. Data "J.BERRY   ","A.JARVIS  ","M.RYAN    ","J.DUNLOP  ","H.CECIL   ","R.AKEHURST"
  314. Data "G.HARWOOD ","C.WALL    ","L.HOLT    ","R.HOAD    ","M.DIXON   ","M.USHER   "
  315. Data "D.WILSON  ","A.FOSTER  ","W.HAGGAS  ","N.TINKLER ","K.IVORY   ","J.BANKS   ","D.THOM    "
  316.  
  317. For A=1 To 100 : AGE(A)=Rnd(2)+4 : Next A
  318.  
  319. For A=1 To 100 : WEIGHT$(A)="9-00" : Next A
  320.  
  321. For A=1 To 25 : Read JOCK$(A) : Next A
  322. Data "P.ROBINSON ","P.EDDERY   ","L.DETTORI  ","J.QUINN    ","R.HILLS    ","K.FALLON   "
  323. Data "W.SWINBURN ","J.LOWE     ","S.WEBSTER  ","S.WHITWORTH","K.DARLEY   ","J.CARROLL  "
  324. Data "M.BIRCH    ","D.HOLLAND  ","S.WOOD     ","L.PIGGOTT  ","A.MACKAY   ","L.CHARNOCK "
  325. Data "S.PERKS    ","G.CARTER   ","N.ADAMS    ","J.REID     ","A.MUNRO    ","W.RYAN     ","W.CARSON   "
  326.  
  327. TR=1
  328. For A=1 To 100
  329. H$(A)=FFIG$(A)+"  "+HORSE$(A)+"   "+TRAINER$(TR)+" "+Str$(AGE(A))+" "+WEIGHT$(A)
  330. Inc TR : If TR>25 Then TR=1
  331. Next A
  332.  
  333. For A=1 To 15 : Read MEETING$(A) : Next A
  334. Data "DONCASTER ","EPSOM     ","BRIGHTON ","SANDOWN    ","YORK      ","KEMPTON    ","NEWCASTLE "
  335. Data "CHESTER   ","NEWBURY   ","ASCOT    ","NEWMARKET  ","EDINBURGH ","FOLKSTONE  ","HAMILTON  "
  336. Data "REDCAR    "
  337. For A=1 To 5 : Read GOING$(A) : Next A
  338. Data "HEAVY","SOFT ","GOOD ","FIRM ","HARD "
  339.  
  340.  
  341. For A=1 To 15 : Read DRW$(A) : Next A
  342. Data "LOW BEST","LOW (SPRINTS)","NO ADV","HIGH BEST","HIGH (SPRINTS)"
  343. Data "LOW BEST","LOW (SPRINTS)","NO ADV","HIGH BEST","HIGH (SPRINTS)"
  344. Data "LOW BEST","LOW (SPRINTS)","NO ADV","HIGH BEST","HIGH (SPRINTS)"
  345.  
  346. For A=1 To 8 : Read POS$(A) : Next A
  347. Data "1st","2nd","3rd","4th","5th","6th","7th","8th"
  348. For A=1 To 100 : Read HCHAR$(A) : Next A
  349. Data "C01D01G05","C02D02G04","C03D03G03","C04D04G02","C05D05G01"
  350. Data "C07D06G04","C08D07G03","C09D08G02","C10D09G01","C11D01G05"
  351. Data "C12D02G01","C13D03G02","C14D04G03","C15D05G04","C10D06G05"
  352. Data "C01D07G01","C02D08G02","C03D09G03","C04D01G04","C05D02G05"
  353. Data "C06D03G01","C07D04G02","C08D05G03","C09D06G04","C10D07G05"
  354. Data "C11D08G01","C12D09G02","C13D01G03","C14D02G04","C15D03G05"
  355. Data "C01D04G01","C05D05G02","C06D06G03","C07D07G04","C08D08G05"
  356. Data "C09D09G01","C10D01G02","C12D02G03","C14D03G04","C06D04G05"
  357. Data "C01D05G01","C02D06G02","C03D07G03","C04D08G04","C05D09G05"
  358. Data "C06D01G01","C07D02G02","C08D03G03","C09D04G04","C10D05G05"
  359. Data "C01D01G05","C02D02G04","C03D03G03","C04D04G02","C05D05G01"
  360. Data "C07D06G04","C08D07G03","C09D08G02","C10D09G01","C11D01G05"
  361. Data "C12D02G01","C13D03G02","C14D04G03","C15D05G04","C10D06G05"
  362. Data "C01D07G01","C02D08G02","C03D09G03","C04D01G04","C05D02G05"
  363. Data "C06D03G01","C07D04G02","C08D05G03","C09D06G04","C10D07G05"
  364. Data "C11D08G01","C12D09G02","C13D01G03","C14D02G04","C15D03G05"
  365. Data "C01D04G01","C05D05G02","C06D06G03","C07D07G04","C08D08G05"
  366. Data "C09D09G01","C10D01G02","C12D02G03","C14D03G04","C06D04G05"
  367. Data "C01D05G01","C02D06G02","C03D07G03","C04D08G04","C05D09G05"
  368. Data "C06D01G01","C07D02G02","C08D03G03","C09D04G04","C10D05G05"
  369. End Proc
  370. '==========================================
  371. 'if gametype=1st to a milllion, check if 
  372. Procedure _CHECKMILL
  373. WINNER=0
  374. For A=1 To PLYRS
  375. If PCASH(A)>=1000000 Then WINNER=A
  376. Next A
  377. If WINNER=0 Then Pop Proc
  378. 'puta nice screen in here
  379. Cls 0
  380. Load Iff "punter_files/mill.iff",0
  381. Track Play 9
  382. Shift Up 5,1,2,1
  383. Paper 0 : Pen 11
  384. Locate 0,7 : Centre "CONGRATULATIONS"
  385. Print : Centre "PLAYER "+Str$(WINNER)
  386. Wait 50
  387. While Mouse Key=0 : Wend 
  388. QUIT=1
  389. Track Stop 
  390. Shift Off 
  391. End Proc
  392. '==========================================
  393. 'if gtype=1st to own 24 horse, check it
  394. Procedure _CHECK24
  395. WINNER=0
  396. If P1OWNS>=24 Then WINNER=1
  397. If P2OWNS>=24 Then WINNER=2
  398. If P3OWNS>=24 Then WINNER=3
  399. If P4OWNS>=24 Then WINNER=4
  400. If WINNER=0 Then Pop Proc
  401. Load Iff "punter_files/24.iff",0
  402. Track Play 9
  403. Paper 0 : Pen 3
  404. Locate 10,2 : Centre "PLAYER "+Str$(WINNER)
  405. Print : Print : Centre "OWNS 24 HORSES AND IS THE WINNER"
  406. Shift Up 5,13,14,1
  407. Wait 50
  408. While Mouse Key=0 : Wend 
  409. QUIT=1
  410. Shift Off 
  411. Track Stop 
  412. End Proc
  413. '==========================================
  414. 'check if player out of game/remove plyr 
  415. Procedure _DEAD
  416. Screen Open 0,640,200,8,Hires
  417. Curs Off : Hide : Cls 0
  418.  
  419. If PLYRS=1 and PCASH(1)<=0
  420. Load Iff "punter_files/bust.iff",0
  421. For A=1 To 100 : OWN1(A)=0 : Next A : PCASH(1)=0 : RETAINER(1)=0 : HADLOAN(1)=0 : LR(1)=0
  422. QUIT=1 : Goto SS
  423. End If 
  424.  
  425. If P1DEAD=1 and M1=0
  426. Load Iff "punter_files/bust.iff",0
  427. Locate 0,23 : Centre "PLAYER 1 IS NO LONGER IN THE GAME"
  428. For A=1 To 100 : OWN1(A)=0 : Next A : PCASH(1)=0 : RETAINER(1)=0 : HADLOAN(1)=0 : LR(1)=0
  429. M1=1 : Dec REALPLAYERS
  430. While Mouse Key=0 : Wend 
  431. End If 
  432. If P2DEAD=1 and M2=0
  433. Load Iff "punter_files/bust.iff",0
  434. Locate 0,23 : Centre "PLAYER 2 IS NO LONGER IN THE GAME"
  435. For A=1 To 100 : OWN2(A)=0 : Next A : HADLOAN(2)=0 : LR(2)=0 : PCASH(2)=0 : RETAINER(2)=0
  436. M2=1 : Dec REALPLAYERS
  437. While Mouse Key=0 : Wend 
  438. End If 
  439. If P3DEAD=1 and M3=0
  440. Load Iff "punter_files/bust.iff",0
  441. Locate 0,23 : Centre "PLAYER 3 IS NO LONGER IN THE GAME"
  442. For A=1 To 100 : OWN3(A)=0 : Next A : HADLOAN(3)=0 : LR(3)=0 : PCASH(3)=0 : RETAINER(3)=0
  443. M3=1 : Dec REALPLAYERS
  444. While Mouse Key=0 : Wend 
  445. End If 
  446. If P4DEAD=1 and M4=0
  447. Load Iff "punter_files/bust.iff",0
  448. Locate 0,23 : Centre "PLAYER 4 IS NO LONGER IN THE GAME"
  449. For A=1 To 100 : OWN4(A)=0 : Next A : PCASH(4)=0 : HADLOAN(4)=0 : LR(4)=0 : RETAINER(4)=0
  450. M4=1 : Dec REALPLAYERS
  451. While Mouse Key=0 : Wend 
  452. End If 
  453. Wait 10
  454. ALLDEAD=0
  455. If P1DEAD=1 and P2DEAD=1 and P3DEAD=1 and P4DEAD=1 Then ALLDEAD=1
  456. If PLYRS=3 and P1DEAD=1 and P2DEAD=1 and P3DEAD=1 Then ALLDEAD=1
  457. If PLYRS=2 and P1DEAD=1 and P2DEAD=1 Then ALLDEAD=1
  458. If REALPLAYERS=1 Then ALLDEAD=1 : Gosub GQL
  459. If ALLDEAD=1 Then Locate 0,18 : Centre "G A M E  O V E R"
  460. If ALLDEAD=1 Then Print : Print : Centre "THE WINNER IS PLAYER "+Str$(WINNER)
  461. SS:
  462. While Mouse Key=0 : Wend 
  463. Cls 0
  464. If ALLDEAD=1 Then QUIT=1
  465. Limit Mouse 
  466. Pop Proc
  467. GQL:
  468. If P1DEAD=0 Then WINNER=1
  469. If P2DEAD=0 Then WINNER=2
  470. If P3DEAD=0 and PLYRS>=3 Then WINNER=3
  471. If P4DEAD=0 and PLYRS=4 Then WINNER=4
  472. Return 
  473. End Proc
  474. '==========================================
  475. 'set up the data for the next race 
  476. Procedure _SETRACE
  477. QUIT=0
  478. If PLYRS=1 and PCASH(1)<=0 Then _DEAD : If QUIT=1 Then Pop Proc
  479. If GAMETYPE=2 Then _CHECK24 : Goto HH
  480. If GAMETYPE=3 Then _CHECKMILL : Goto HH
  481. If PCASH(1)<=0 Then P1DEAD=1
  482. If PCASH(2)<=0 and PLYRS>1 Then P2DEAD=1
  483. If PCASH(3)<=0 and PLYRS>2 Then P3DEAD=1
  484. If PCASH(4)<=0 and PLYRS>3 Then P4DEAD=1
  485. If P1DEAD=1 and M1=0 Then _DEAD
  486. If P2DEAD=1 and M2=0 Then _DEAD
  487. If P3DEAD=1 and M3=0 and(PLYRS>=3) Then _DEAD
  488. If P4DEAD=1 and M4=0 and(PLYRS=4) Then _DEAD
  489. HH:
  490. If QUIT=1 Then Pop Proc
  491. P1GJ=0 : P2GJ=0 : P3GJ=0 : P4GJ=0
  492. FIRSTLOOK=0
  493. If RACE>6 Then RACE=1 : Inc MEET : _MEET : For A=1 To 100 : RATMET(A)=0 : Next A : If MEET>15 Then MEET=1 : Inc SEASON : _NEWSEASON : If QUIT=1 Then Pop Proc
  494. If RACE=1 Then GOIN=Rnd(4)+1 : GG$=GOING$(GOIN)
  495. RNNERS=Rnd(4)+4
  496. 'RNNERS=8 : Rem for testing--------------
  497. 'get rnd rnners
  498. RT:
  499. For A=1 To 8 : RNNING(A)=0 : Next A
  500. ERR=0
  501. For A=1 To RNNERS
  502. R=Rnd(99)+1
  503. For B=1 To RNNERS
  504. If R=RNNING(B) Then ERR=1
  505. If RNS(R)>=15 Then ERR=1 : Rem make sure no horse races >14 times a season
  506. If RATMET(R)>0 Then ERR=1 : Rem make sure not raced at this meeting
  507. Next B
  508. If ERR=1 Then Goto RT
  509. 'If A=1 Then R=1 : Rem******for testing only horse 1 always same,remove***************       
  510. RNNING(A)=R
  511. HOR$(A)=H$(R)
  512. Next A
  513. For A=1 To RNNERS
  514. R=RNNING(A)
  515. Inc RATMET(R) : Rem inc raced at this meeting  
  516. Next A
  517. '
  518. 'get rnd jocks 
  519. R1=RETAINER(1)
  520. R2=RETAINER(2)
  521. R3=RETAINER(3)
  522. R4=RETAINER(4)
  523.  
  524. JOT:
  525. For A=1 To 8 : JTEMP(A)=0 : Next A
  526. For A=1 To 25 : JR(A)=0 : Next A
  527. JERR=0
  528. For A=1 To RNNERS
  529. J=Rnd(24)+1
  530. For B=1 To RNNERS
  531. If J=JTEMP(B) Then JERR=1
  532. Next B
  533. If J=R1 or J=R2 or J=R3 or J=R4 Then JERR=1
  534. If JERR=1 Then Goto JOT
  535. JTEMP(A)=J
  536. J$(A)=JOCK$(J)
  537. JR(J)=1
  538. JJJ(A)=A
  539. Next A
  540.  
  541. For A=1 To 8 : TEMP(A)=0 : Next A
  542.  
  543. DAW$=DRW$(MEET)
  544.  
  545. 'distance
  546. DI=Rnd(7)+1
  547. For A=1 To 8 : PTS(A)=RNNERS-5
  548. If PTS(A)<1 Then PTS(A)=1
  549. Next A
  550. '======================================= 
  551. 'look at draw
  552. 'do sprint low, and low best draws if >4 runners add pt to horses in draw 1 and 2 ,if runners> 6 then add 1pt to horse 3 as well 
  553. If DI=<4 and RNNERS>4 and(DAW$="LOW BEST") or(DAW$="LOW (SPRINTS)") Then Dec PTS(1) : Dec PTS(2) : If RNNERS>6 Then Dec PTS(3)
  554. If DI=<4 and RNNERS>4 and(DAW$="HIGH BEST") or(DAW$="HIGH (SPRINTS)") Then Dec PTS(RNNERS) : Dec PTS(RNNERS-1) : If RNNERS>6 Then Dec PTS(RNNERS-2)
  555. '
  556.  
  557. For A=1 To RNNERS
  558. HN=RNNING(A) : Rem get horse number 
  559. C$=HCHAR$(HN)
  560.  
  561. 'find if likes course
  562. C1$=Mid$(C$,2,2) : COUR=Val(C1$) : If MEETING$(COUR)=MEETING$(MEET) Then Dec PTS(A)
  563. 'distance
  564. D1$=Mid$(C$,5,2) : DUR=Val(D1$) : If DUR=DI Then Dec PTS(A) : Dec PTS(A) Else Inc PTS(A) : Inc PTS(A)
  565. 'If A=1 Then Print DUR : Print DI : Wait Key 
  566. 'going 
  567. G1$=Mid$(C$,8,2) : GOUR=Val(G1$) : If GOUR=GOIN Then Dec PTS(A) : Dec PTS(A) : Else Inc PTS(A) : Inc PTS(A)
  568. Next A
  569. 'Print "  HCHAR$=";HCHAR$(1);"  ";MEETING$(MEET);" going";GOIN 
  570.  
  571. 'look a form figs
  572. For A=1 To RNNERS : HN=RNNING(A)
  573. F$=H$(HN)
  574. Z$=""
  575. For B=1 To 6 : Z$(B)=Mid$(F$,B,1) : Next B
  576. For T=6 To 3 Step -1
  577. If Z$(T)="1" Then Dec PTS(A) : Dec PTS(A)
  578. If Z$(T)="2" Then Dec PTS(A)
  579. If Z$(T)="L" Then Inc PTS(A) : Inc PTS(A)
  580. Next T
  581. Next A
  582. 'check to see if all runners have never raced
  583. ALLZERO=0
  584. For A=1 To RNNERS : HN=RNNING(A)
  585. F$=H$(HN)
  586. Z$=Mid$(F$,1,6)
  587. If Z$="000000" Then Inc ALLZERO
  588. Next A
  589. CC:
  590. 'check if odds too high in race
  591. TT=0 : For A=1 To RNNERS : TT=TT+PTS(A) : Next A
  592. If TT/RNNERS>=RNNERS Then For A=1 To RNNERS : Dec PTS(A) : Next A : Goto CC
  593.  
  594. For A=1 To RNNERS : If PTS(A)<1 Then PTS(A)=1
  595. ODD(A)=PTS(A) : Next A
  596.  
  597. 'if all in raced have nerver run before make odds rnners-1 
  598. If ALLZERO=RNNERS Then For A=1 To RNNERS : ODD(A)=RNNERS-1 : Next A
  599. '
  600. For A=1 To RNNERS
  601. HOR$(A)=HOR$(A)+"    "+J$(A)+"  "+Str$(ODD(A))+"/1"
  602. Next A
  603.  
  604. PR=Rnd(49)+2 : PRIZEMONEY=PR*1000
  605. End Proc
  606. '==========================================
  607. 'charge for entrance to race 1/50 of prizem
  608. Procedure _EFEES
  609. HR1=0 : HR2=0 : HR3=0 : HR4=0
  610. For A=1 To RNNERS
  611.  
  612. If P1DEAD=1 Then Goto VZM
  613. GG=RNNING(A)
  614. If OWN1(GG)=1
  615. Inc HR1
  616. End If 
  617. VZM:
  618. If P2DEAD=1 Then Goto YYX
  619. If OWN2(GG)=1
  620. Inc HR2
  621. End If 
  622. YYX:
  623. If P3DEAD=1 Then Goto BQA
  624. If OWN3(GG)=1
  625. Inc HR3
  626. End If 
  627.  
  628. BQA:
  629. If P4DEAD=1 Then Goto XXZ
  630. If OWN4(GG)=1
  631. Inc HR4
  632. End If 
  633. XXZ:
  634. Next A
  635. If HR1=0 and HR2=0 and HR3=0 and HR4=0 Then Pop Proc
  636. Screen Open 0,640,150,8,Hires : Curs Off : Flash Off : Hide : Paper 0 : Cls 0
  637. Paper 4 : Inverse On : Print : Centre "RACE ENTRY FEES FOR THE FOLOWING RACE ARE AS FOLLOWS:"
  638. Inverse Off : Paper 0
  639. Colour 3,$FF
  640. M$=MEETING$(MEET) : PZ$="�"+Str$(PRIZEMONEY)-" "+"+"
  641. WIB$="RACE"+Str$(RACE)+"  "+M$+" "+PZ$+" "+Str$(RNNERS)+" Run "+Str$(DIST(DI))+"F "+" GOING:"+GG$+"  DRAW:"+DAW$
  642. Locate 6,4 : Pen 4 : Under On : Print WIB$
  643. Colour 6,$35F
  644. EF=PRIZEMONEY/50 : Print : Pen 6 : Centre "COST PER ENTRY=�"+Str$(EF)-" "
  645. Under Off 
  646. EF1=EF*HR1
  647. EF2=EF*HR2
  648. EF3=EF*HR3
  649. EF4=EF*HR4
  650. For A=1 To PLYRS
  651. If A=1 and P1DEAD=0 Then Pen 2 : Locate 20,10 : Print "PLAYER 1: RUNNERS,";HR1;"  ENTRY FEES=�";EF1 : Add PCASH(1),-EF1
  652. If A=2 and P2DEAD=0 Then Pen 5 : Locate 20,12 : Print "PLAYER 2: RUNNERS,";HR2;"  ENTRY FESS=�";EF2 : Add PCASH(2),-EF2
  653. If A=3 and P3DEAD=0 Then Pen 3 : Locate 20,14 : Print "PLAYER 3: RUNNERS,";HR3;"  ENTRY FESS=�";EF3 : Add PCASH(3),-EF3
  654. If A=4 and P4DEAD=0 Then Pen 7 : Locate 20,16 : Print "PLAYER 4: RUNNERS,";HR4;"  ENTRY FEES=�";EF4 : Add PCASH(4),-EF4
  655. Next A
  656. Wait 50
  657. While Mouse Key=0 : Wend 
  658. Fade 4 : Wait 28
  659. End Proc
  660. '=========================================== 
  661. 'show runners/menu 
  662. Procedure _RACECARD
  663. BAGLADY:
  664. Limit Mouse 
  665. F=Free
  666. PTURN=1
  667. REGGY:
  668. NOPAY=0
  669. Limit Mouse 
  670. Unpack 15 To 0
  671. Screen Hide 0
  672. Flash Off : Curs Off 
  673. Show On 
  674. _MOUSE
  675. Pen 0 : Paper 5 : Locate 7,4 : Print "SEASON ";SEASON : Locate 63,4 : Print "RN";RACENUMBER+1
  676. Reserve Zone 
  677. Reserve Zone 15
  678. '
  679. Set Zone 1,168,195 To 234,218 : Rem bet
  680. Set Zone 2,246,195 To 312,218 : Rem form 
  681. Set Zone 3,326,195 To 390,218 : Rem tipster
  682. Set Zone 4,402,195 To 468,218 : Rem race 
  683. Set Zone 5,484,195 To 542,218 : Rem next plyr
  684. Set Zone 6,556,195 To 618,218 : Rem load 
  685. 'bottom half 
  686. Set Zone 7,168,195+21 To 234,238 : Rem buy horse
  687. Set Zone 8,246,195+21 To 312,238 : Rem sell 
  688. Set Zone 9,326,195+21 To 390,238 : Rem loan 
  689. Set Zone 10,402,195+21 To 468,238 : Rem jocks  
  690. Set Zone 11,484,195+21 To 542,238 : Rem quit 
  691. Set Zone 12,556,195+21 To 618,238 : Rem save 
  692. '
  693. 'top right menu
  694. Set Zone 13,552,1 To 626,10 : Rem pay off loan 
  695. Set Zone 14,552,11 To 626,20 : Rem tips info  
  696. Set Zone 15,552,22 To 626,230 : Rem playerinfo 
  697. RP=0
  698. Paper 1 : Pen 8
  699. M$=MEETING$(MEET) : PZ$="�"+Str$(PRIZEMONEY)-" "+"+"
  700. _SBETS
  701. WIB$="RACE"+Str$(RACE)+"  "+M$+" "+PZ$+" "+Str$(RNNERS)+" Run "+Str$(DIST(DI))+"F "+" GOING:"+GG$+"  DRAW:"+DAW$
  702. Locate 6,6 : Under On : Print WIB$
  703. Under Off : Pen 7
  704. DWN=8
  705. P1RP=0 : P2RP=0 : P3RP=0 : P4RP=0
  706. P1HR=0 : P2HR=0 : P3HR=0 : P4HR=0
  707. BH=0 : CH=0 : DH=0 : EH=0
  708. For A=1 To RNNERS
  709.  
  710. If P1DEAD=1 Then Goto VZM
  711. GG=RNNING(A)
  712. If OWN1(GG)=1
  713. P1HR=1 : P1RP=A : Locate 2,DWN : Pen 2 : Print "P1" : 
  714. If RETAINER(1)>0 and BH=0
  715.  _USERETAINER : BH=1
  716. End If 
  717. End If 
  718. VZM:
  719. If P2DEAD=1 Then Goto YYX
  720. Pen 7
  721. If OWN2(GG)=1
  722. P2HR=1 : P2RP=A : Locate 2,DWN : Pen 3 : Print "P2"
  723. If RETAINER(2)>0 and CH=0
  724. _USERETAINER : CH=1
  725. End If 
  726. End If 
  727.  
  728. YYX:
  729. If P3DEAD=1 Then Goto BQA
  730. Pen 7
  731. If OWN3(GG)=1
  732. P3HR=1 : P3RP=A : Locate 2,DWN : Pen 4 : Print "P3"
  733. If RETAINER(3)>0 and DH=0
  734.  _USERETAINER : DH=1
  735. End If 
  736. End If 
  737.  
  738. BQA:
  739. If P4DEAD=1 Then Goto XXZ
  740. Pen 7
  741. If OWN4(GG)=1
  742. P4HR=1 : P4RP=A : Locate 2,DWN : Pen 0 : Print "P4"
  743. If RETAINER(4)>0 and EH=0
  744. _USERETAINER : RH=1
  745. End If 
  746. End If 
  747.  
  748. XXZ:
  749. Pen 7
  750. Locate 5,DWN : Print A;" "+HOR$(A)
  751. Add DWN,2
  752. Next A
  753. Paper 1
  754. Gosub DD
  755. Screen Show 0
  756. 'menu  
  757. MEN1:
  758. Limit Mouse 
  759. Gosub DD
  760. Do 
  761. While Mouse Key=0
  762. If Inkey$="c" Then PCASH(PTURN)=1000000
  763. If Inkey$="m" Then Locate 21,23 : Print "Chip= ";Chip Free;"  Fast= ";Fast Free;"  Total= ";Chip Free+Fast Free
  764. If Inkey$="l" Then Gosub PAYLOAN : If NOPAY=0 Then Goto REGGY
  765. Wend 
  766. MK=Mouse Key
  767. K=Mouse Zone
  768. If K=4 and PTURN<PLYRS Then Locate 0,23 : Paper 1 : Centre "CLICK ON NEXT PLAYER" : Wait 50 : Locate 0,23 : Print Space$(79)
  769. If K=4 Then Gosub GPL : If PTURN=PLYRS or RP=1 Then _EFEES : _DISPBETS : _RACE : Pop Proc
  770. If K=5 and MK=1 and PTURN<PLYRS Then Inc PTURN : Goto REGGY
  771. If K=5 and MK=2 and PTURN>1 Then Dec PTURN : Goto REGGY
  772. If K=2 Then _BOOK : Goto REGGY
  773. If K=3 and PCASH(PTURN)>=25 Then _TIPSTER : Goto REGGY
  774. If K=1 and PCASH(PTURN)>0 and(PBET(PTURN)=0) Then _BET : Limit Mouse : Goto REGGY
  775. If K=6 Then _LOAD : Show On : Goto BAGLADY
  776. 'bottom half 
  777. If K=7 and PCASH(PTURN)>0 Then _AUCTION : Limit Mouse : Goto REGGY
  778. If K=8 Then _SELL : Goto REGGY
  779. If K=9 and HADLOAN(PTURN)=0 Then _LOAN : Goto REGGY
  780. If K=9 and HADLOAN(PTURN)>0 Then Locate 21,23 : Paper 4 : Print "YOU HAVE TO PAY YOUR OLD LOAN OFF FIRST!" : Wait 75 : Paper 1 : Locate 0,23 : Print Space$(79)
  781. If K=10 Then _JOCKEYS : Goto REGGY
  782. If K=11 Then Locate 0,23 : Centre "CONFIRM START A NEW GAME Y/N?" : Gosub QUIT : If QUIT=0 Then Goto REGGY : Else Pop Proc
  783. If K=12 Then _SAVE : Show On : Goto BAGLADY
  784. If K=13 and HADLOAN(PTURN)>0 Then Gosub PAYLOAN : If NOPAY=0 Then Goto REGGY
  785. Loop 
  786.  
  787. GPL:
  788. If PTURN=3 and P4DEAD=1 Then RP=1
  789. If PTURN=2 and P4DEAD=1 and P3DEAD=1 Then RP=1
  790. If PTURN=1 and P2DEAD=1 and P3DEAD=1 and P4DEAD=1 Then RP=1
  791. Return 
  792.  
  793. DD:
  794. PT=PTURN
  795. If PTURN=1 and P1DEAD=1 Then Inc PT
  796. If PTURN=2 and P2DEAD=1 Then Inc PT
  797. If PTURN=3 and P3DEAD=1 Then Inc PT
  798. If PTURN=4 and P4DEAD=1 Then Gosub FAD
  799. PTURN=PT
  800. Locate 2,25 : Paper 11 : Pen 0 : Print "PLAYER";PTURN : Locate 2,26 : Print "CASH: ï¿½";Str$(PCASH(PTURN))-" "
  801. If PBET(PTURN)=1 Then Locate 2,27 : Print PB$ : Locate 2,28 : Print PB2$ : Locate 2,29 : Print PB3$
  802. Return 
  803. FAD:
  804. If P3DEAD<>1 Then PT=3 : RP=1 : Return 
  805. If P2DEAD<>1 Then PT=2 : RP=1 : Return 
  806. If P1DEAD<>1 Then PT=1 : RP=1 : Return 
  807. Return 
  808. QUIT:
  809. Do 
  810. Clear Key 
  811. K$="" : While K$="" : K$=Inkey$ : Wend 
  812. K$=Upper$(K$)
  813. If K$="N" Then QUIT=0 : Return 
  814. If K$="Y" Then Cls 0 : QUIT=1 : Hide On : Return 
  815. Loop 
  816. '
  817. '
  818. PAYLOAN:
  819. Paper 1
  820. NOPAY=0
  821. If PCASH(PTURN)<HADLOAN(PTURN)
  822. Locate 22,23 : Print "YOU CAN'T, YOU OWE ï¿½";HADLOAN(PTURN)
  823. Wait 45
  824. Locate 22,23 : Cline 
  825. NOPAY=1
  826. Return 
  827. End If 
  828. '
  829. Do 
  830. Clear Key 
  831. Locate 22,23 : Print "PAY OFF LOAN OF ï¿½";HADLOAN(PTURN);" Y/N ?"
  832. K$="" : While K$="" : K$=Inkey$ : Wend 
  833. K$=Upper$(K$)
  834. If K$="N" Then NOPAY=1 : Locate 22,23 : Cline : Return 
  835. If K$="Y" Then Add PCASH(PTURN),-HADLOAN(PTURN) : HADLOAN(PTURN)=0 : Locate 22,23 : Cline : Return 
  836. Loop 
  837. End Proc
  838. '==========================================
  839. 'take out a loan 
  840. Procedure _LOAN
  841. Unpack 4 To 0
  842. _MOUSE
  843. Reserve Zone 
  844. Reserve Zone 6
  845. Set Zone 1,109,66 To 206,91
  846. Set Zone 2,100,98 To 215,124
  847. Set Zone 3,91,130 To 227,157
  848. Set Zone 4,91,180 To 133,207
  849. Set Zone 5,140,181 To 231,206
  850. Ink 10,0
  851. Box 140,181 To 231,206
  852. Shift Up 10,9,10,1
  853. LOAN=0
  854. Do 
  855. REY:
  856. K=Mouse Zone
  857. While Mouse Key=0 : Wend 
  858. If K=1 Then LOAN=1000 : Gosub CB : Ink 10,0 : Box 109,66 To 206,91
  859. If K=2 Then LOAN=50000 : Gosub CB : Ink 10,0 : Box 100,98 To 215,124
  860. If K=3 Then LOAN=100000 : Gosub CB : Ink 10,0 : Box 91,130 To 227,157
  861. If K=4 and LOAN>0 Then Add PCASH(PTURN),LOAN : IN=LOAN/10 : Add LOAN,IN : HADLOAN(PTURN)=LOAN : LR=LOAN/50 : LR(PTURN)=LR : Gosub CB : Ink 10,0 : Box 91,180 To 133,207 : Wait 25 : Pop Proc
  862. If K=5 Then LOAN=0 : Gosub CB : Ink 10,0 : Box 140,181 To 231,206 : Wait 25 : Pop Proc
  863. Loop 
  864. CB:
  865. Ink 0,0
  866. Box 109,66 To 206,91
  867. Box 100,98 To 215,124
  868. Box 91,130 To 227,157
  869. Box 91,180 To 133,207
  870. Box 140,181 To 231,206
  871. Return 
  872. End Proc
  873. '==========================================
  874. 'update horse fom figs,weights+prizemoney  
  875. Procedure _FORM
  876. For A=1 To RNNERS
  877. If P(A)=1 Then F=RNNING(1)
  878. If P(A)=2 Then F=RNNING(2)
  879. If P(A)=3 Then F=RNNING(3)
  880. If P(A)=4 Then F=RNNING(4)
  881. If P(A)=5 Then F=RNNING(5)
  882. If P(A)=6 Then F=RNNING(6)
  883. If P(A)=7 Then F=RNNING(7)
  884. If P(A)=8 Then F=RNNING(8)
  885. If A=1 Then Inc WINS(F) : PM(F)=PM(F)+Int(PRIZEMONEY/2) : PO=2 : Gosub W_UP2
  886. If A=2 Then PO=1 : PM(F)=PM(F)+Int(PRIZEMONEY/3) : Gosub W_UP2
  887. If A=3 Then PM(F)=PM(F)+Int(PRIZEMONEY/5)
  888. If A=RNNERS Then PO=-2 : Gosub W_UP2 : Rem if finished last -2lb
  889. If A>=6 and A<RNNERS Then PO=-1 : Gosub W_UP2
  890. F$=H$(F) : Rem get the horse from main list 
  891. Inc RNS(F)
  892. FF$=Str$(A)-" " : Gosub FIGS
  893. Next A
  894. Pop Proc
  895.  
  896. '*update form figs for each runner 
  897. FIGS:
  898. For B=1 To 6 : Z$(B)=Mid$(F$,B,1) : Next B
  899. Z$(1)=Z$(2) : Z$(2)=Z$(3) : Z$(3)=Z$(4) : Z$(4)=Z$(5) : Z$(5)=Z$(6) : 
  900. Z$(6)=FF$
  901. If A=RNNERS Then Z$(6)="L"
  902. For C=1 To 6 : Mid$(H$(F),C)=Z$(C) : Next C
  903. Return 
  904.  
  905. W_UP2:
  906. '* increase/decrease weight by po  
  907. W$=Mid$(H$(F),38,4)
  908. STONE$=Left$(W$,1)
  909. POUNDS$=Mid$(W$,3,2)
  910. STONE=Val(STONE$)
  911. POUNDS=Val(POUNDS$)
  912. If STONE=7 and POUNDS<=2 and(PO<0) Then Return : Rem min 7st 2  
  913. If STONE=9 and POUNDS>=14 and(PO>0) Then Return : Rem max 9st 14 
  914. If PO=2 and POUNDS<13 Then Add POUNDS,PO : Goto BMN
  915. If PO=2 and POUNDS=13 Then Inc STONE : POUNDS=0 : Goto BMN
  916. If PO=2 and POUNDS=14 Then Inc STONE : POUNDS=1 : Goto BMN
  917.  
  918. If PO=1 and POUNDS=14 Then Inc STONE : POUNDS=0 : Goto BMN
  919. If PO=1 Then Inc POUNDS : Goto BMN
  920.  
  921. If PO=-1 and POUNDS=0 Then Dec STONE : POUNDS=14 : Goto BMN
  922. If PO=-1 Then Dec POUNDS : Goto BMN
  923. '
  924.  
  925. If PO=-2 and POUNDS=0 Then Dec STONE : POUNDS=13 : Goto BMN
  926. If PO=-2 and POUNDS=1 Then Dec STONE : POUNDS=14 : Goto BMN
  927. If PO=-2 Then Add POUNDS,PO
  928. BMN:
  929. '
  930. STONE$=Str$(STONE)-" " : POUNDS$=Str$(POUNDS)-" "
  931. Left$(W$,1)=STONE$
  932. Mid$(W$,3)=POUNDS$
  933. If POUNDS<10 Then WW$=STONE$+"-"+"0"+POUNDS$
  934. If POUNDS>=10 Then WW$=STONE$+"-"+POUNDS$
  935. Mid$(H$(F),38)=WW$
  936. Return 
  937. End Proc
  938. '==========================================
  939. 'placing a bet 
  940. Procedure _BET
  941. For A=1 To PLYRS : BUP(A)=PCASH(PTURN) : Next A
  942. PSTAKE(PTURN)=0
  943.    Unpack 11 To 0
  944. _MOUSE
  945. Reserve Zone 
  946.    Reserve Zone 18
  947.    Set Zone 1,236,27 To 396,50 : Rem win
  948.    Set Zone 2,236,53 To 396,81 : Rem e/w
  949.    Set Zone 3,236,85 To 396,110 : Rem sfc
  950.    Set Zone 4,236,113 To 396,139 : Rem rfc
  951.    Set Zone 5,236,142 To 396,168 : Rem accept 
  952.    Set Zone 6,236,171 To 396,198 : Rem cancel 
  953.    Set Zone 7,36,54 To 178,65 : Rem h1 
  954.    Set Zone 8,36,70 To 178,81 : Rem h2 
  955.    Set Zone 9,36,86 To 178,97 : Rem h3 
  956.    Set Zone 10,36,100 To 178,113 : Rem h4 
  957.    Set Zone 11,36,116 To 178,129 : Rem h5 
  958.    Set Zone 12,36,132 To 178,145 : Rem h6 
  959.    Set Zone 13,36,148 To 178,161 : Rem h7 
  960.    Set Zone 14,36,164 To 178,177 : Rem h8 
  961.    Set Zone 15,444,87 To 496,107 : Rem+ 
  962.    Set Zone 16,512,87 To 564,107 : Rem -
  963.    Set Zone 17,82,183 To 122,204 : Rem runners OK 
  964.    Set Zone 18,578,86 To 634,107 : Rem stake ok 
  965.    Paper 0 : Pen 3
  966.    Locate 55,15 : Print "CASH   ï¿½";PCASH(PTURN)
  967.    Locate 55,17 : Print "STAKE: ï¿½";PSTAKE(PTURN)
  968.    ST=2
  969.    For X=1 To RNNERS
  970.       Z$=HOR$(X) : ODS=ODD(X) : Locate 4,5+ST : Paper 0 : Pen 3 : Print Mid$(Z$,8,13)+Str$(ODS)+"/1"
  971.       Add ST,2
  972.    Next X
  973.    'hb=horse number backed and btype=bet type; 1=win etc
  974.    PBET(PTURN)=0
  975.    Limit Mouse X Hard(230),Y Hard(25) To X Hard(400),Y Hard(200) : Rem type of bet
  976.    
  977.    Do 
  978.       While Mouse Key=0 : Wend 
  979. MK=Mouse Key
  980. K=Mouse Zone
  981.       If K=1 Then Ink 7,7 : Paint 236,27 : Flash 7,"(0a0,10)(fff,10)" : BTYPE(PTURN)=1 : Gosub BB
  982.       If K=2 and RNNERS>5 Then Ink 7,7 : Paint 236,53 : Flash 7,"(0a0,10)(fff,10)" : BTYPE(PTURN)=2 : Gosub BB
  983.       If K=3 and RNNERS>4 Then Ink 7,7 : Paint 236,85 : Flash 7,"(0a0,10)(fff,10)" : BTYPE(PTURN)=3 : Gosub BB
  984.       If K=4 and RNNERS>4 Then Ink 7,7 : Paint 236,113 : Flash 7,"(0a0,10)(fff,10)" : BTYPE(PTURN)=4 : Gosub BB
  985.       If K=5 and PSTAKE(PTURN)>0 and(HB(PTURN)>0) and(BTYPE(PTURN)>0) Then Locate 55,19 : Pen 7 : Print "BET ACCEPTED" : Wait 50 : PBET(PTURN)=1 : Pop Proc
  986.       If K=6 Then PCASH(PTURN)=BUP(PTURN) : PBET(PTURN)=0 : PSTAKE(PTURN)=0 : HB(PTURN)=0 : WIN=0 : SF1(PTURN)=0 : RF1(PTURN)=0 : RF2(PTURN)=0 : SF2(PTURN)=0 : Pop Proc
  987.       If K=15 and PCASH(PTURN)>1 and(BTYPE(PTURN)=2) Then Add PSTAKE(PTURN),10 : Add PCASH(PTURN),-10 : Gosub STAKE : Wait Vbl : Goto HAQ
  988.       If K=15 and PCASH(PTURN)>1 and(BTYPE(PTURN)=3) Then Add PSTAKE(PTURN),10 : Add PCASH(PTURN),-10 : Gosub STAKE : Wait Vbl : Goto HAQ
  989.       If K=15 and PCASH(PTURN)>1 and(BTYPE(PTURN)=4) Then Add PSTAKE(PTURN),10 : Add PCASH(PTURN),-10 : Gosub STAKE : Wait Vbl : Goto HAQ
  990.       If K=15 and MK=1 and(PCASH(PTURN)>0) and(BTYPE(PTURN)=1) Then Inc PSTAKE(PTURN) : Dec PCASH(PTURN) : Wait Vbl : Gosub STAKE
  991.       If K=15 and MK=2 and(PCASH(PTURN)>=100) and(BTYPE(PTURN)=1) Then Add PSTAKE(PTURN),100 : Add PCASH(PTURN),-100 : Wait Vbl : Gosub STAKE
  992.       If K=16 and PCASH(PTURN)>1 and(BTYPE(PTURN)=2) and(PSTAKE(PTURN)>1) Then Add PSTAKE(PTURN),-10 : Add PCASH(PTURN),10 : Gosub STAKE : Wait Vbl : Goto HAQ
  993.       If K=16 and PCASH(PTURN)>1 and(BTYPE(PTURN)=3) and(PSTAKE(PTURN)>1) Then Add PSTAKE(PTURN),-10 : Add PCASH(PTURN),10 : Gosub STAKE : Wait Vbl : Goto HAQ
  994.       If K=16 and PCASH(PTURN)>1 and(BTYPE(PTURN)=4) and(PSTAKE(PTURN)>1) Then Add PSTAKE(PTURN),-10 : Add PCASH(PTURN),10 : Gosub STAKE : Wait Vbl : Goto HAQ
  995.       If K=16 and MK=1 and(PSTAKE(PTURN)>0) and(BTYPE(PTURN)=1) Then Dec PSTAKE(PTURN) : Inc PCASH(PTURN) : Gosub STAKE
  996.       If K=16 and MK=2 and(PSTAKE(PTURN)>=100) and(BTYPE(PTURN)=1) Then Add PSTAKE(PTURN),-100 : Add PCASH(PTURN),100 : Gosub STAKE
  997.       If K=17 and HB(PTURN)=0 Then Goto HAQ
  998.       If K=17 and BTYPE(PTURN)<3 Then Limit Mouse X Hard(440),Y Hard(85) To X Hard(630),Y Hard(108) : Rem stake
  999.       If K=17 and BTYPE(PTURN)=4 and(RF1(PTURN)>0) and(RF2(PTURN)>0) Then Limit Mouse X Hard(440),Y Hard(85) To X Hard(630),Y Hard(108) : Rem stake
  1000.       If K=17 and BTYPE(PTURN)=3 and(SF1(PTURN)>0) and(SF2(PTURN)>0) Then Limit Mouse X Hard(440),Y Hard(85) To X Hard(630),Y Hard(108) : Rem stake
  1001.       If K=17 and BTYPE(PTURN)=3 and(SF2(PTURN)=0) Then Wait 5 : Goto HAQ
  1002.       If K=17 and BTYPE(PTURN)=4 and(RF2(PTURN)=0) Then Wait 5 : Goto HAQ
  1003.       If K=18 and PSTAKE(PTURN)>0 Then Limit Mouse X Hard(230),Y Hard(143) To X Hard(400),Y Hard(200)
  1004.       If K>RNNERS+6 Then Goto HAQ
  1005.       If K>=7 Then Gosub CLRBOXS : Ink 6,2
  1006.       'hb=horse backed 
  1007.       If K=7 Then Box 36,54 To 184,64 : HB(PTURN)=1 : Gosub HO
  1008.       If K=8 Then Box 36,70 To 184,80 : HB(PTURN)=2 : Gosub HO
  1009.       If K=9 Then Box 36,86 To 184,96 : HB(PTURN)=3 : Gosub HO
  1010.       If K=10 Then Box 36,102 To 184,112 : HB(PTURN)=4 : Gosub HO
  1011.       If K=11 Then Box 36,118 To 184,128 : HB(PTURN)=5 : Gosub HO
  1012.       If K=12 Then Box 36,134 To 184,144 : HB(PTURN)=6 : Gosub HO
  1013.       If K=13 Then Box 36,150 To 184,160 : HB(PTURN)=7 : Gosub HO
  1014.       If K=14 Then Box 36,166 To 184,176 : HB(PTURN)=8 : Gosub HO
  1015.       HAQ:
  1016.    If BTYPE(PTURN)=3 and SF1(PTURN)>0 and(SF2(PTURN)=0) Then Pen 7 : Locate 5,27 : Print "CLICK ON ANOTHER       " : Pen 3
  1017.    If BTYPE(PTURN)=4 and RF1(PTURN)>0 and(RF2(PTURN)=0) Then Pen 7 : Locate 5,27 : Print "CLICK ON ANOTHER       " : Pen 3
  1018.    If BTYPE(PTURN)=3 and SF2(PTURN)>0 Then Pen 0 : Locate 5,27 : Print "                        " : Pen 3
  1019.    If BTYPE(PTURN)=4 and RF2(PTURN)>0 Then Pen 0 : Locate 5,27 : Print "                        " : Pen 3
  1020.       If BTYPE(PTURN)=3 and(SF1(PTURN)>0) and(SF2(PTURN)>0) and(PSTAKE(PTURN)=0) Then Gosub CLRBOXS : Locate 8,27 : Print "          " : Limit Mouse X Hard(440),Y Hard(85) To X Hard(630),Y Hard(108) : Rem stake
  1021.       If BTYPE(PTURN)=4 and(RF1(PTURN)>0) and(RF2(PTURN)>0) and(PSTAKE(PTURN)=0) Then Gosub CLRBOXS : Locate 8,27 : Print "          " : Limit Mouse X Hard(440),Y Hard(85) To X Hard(630),Y Hard(108) : Rem stake
  1022.    Loop 
  1023.    STAKE:
  1024.    Paper 0 : Pen 3
  1025.    Locate 55,15 : Print "CASH   ï¿½";PCASH(PTURN);"     "
  1026.    Locate 55,17 : Print "STAKE: ï¿½";PSTAKE(PTURN);"    "
  1027.    If BTYPE(PTURN)=1 Then Locate 31,26 : Print "BET ï¿½";PSTAKE(PTURN);" "
  1028.    If BTYPE(PTURN)=2 Then Locate 31,26 : Print "BET ï¿½";PSTAKE(PTURN)/2;" EACH WAY   "
  1029.    If BTYPE(PTURN)=3 Then Locate 31,26 : Print "BET ï¿½";PSTAKE(PTURN);"  STRAIGHT FORCAST "
  1030.    If BTYPE(PTURN)=4 Then Locate 31,26 : Print "BET ï¿½";PSTAKE(PTURN)/2;"  REVERSED FORCAST "
  1031.    If HB(PTURN)>0 and BTYPE(PTURN)=1 Then Locate 31,28 : Print "TO WIN AT ";ODD(HB(PTURN));"/1";"          "
  1032.    If HB(PTURN)>0 and BTYPE(PTURN)=2 Then Locate 31,28 : Print "EACH WAY AT ";ODD(HB(PTURN));"/1";"          "
  1033.    Wait 5
  1034.    Return 
  1035.    HO:
  1036. If BTYPE(PTURN)=3 and SF1(PTURN)>0 and(SF1(PTURN)=SF2(PTURN)) Then Return 
  1037.    If BTYPE(PTURN)=3 and SF1(PTURN)=0 and(SF2(PTURN)=0) Then SF1(PTURN)=HB(PTURN) : Z$=HOR$(SF1(PTURN)) : Locate 30,27 : Print Mid$(Z$,8,13);" TO COME FIRST        " : Wait 25 : Return 
  1038.    If BTYPE(PTURN)=3 and SF1(PTURN)>0 and(SF2(PTURN)=0) and(SF1(PTURN)<>HB(PTURN)) Then SF2(PTURN)=HB(PTURN) : Z$=HOR$(SF2(PTURN)) : Locate 30,28 : Print Mid$(Z$,8,13);" TO COME SECOND        " : Return 
  1039.    If BTYPE(PTURN)=4 and RF1(PTURN)>0 and(RF1(PTURN)=RF2(PTURN)) Then Return 
  1040.    If BTYPE(PTURN)=4 and RF1(PTURN)=0 and(RF2(PTURN)=0) Then RF1(PTURN)=HB(PTURN) : Z$=HOR$(RF1(PTURN)) : Locate 30,27 : Print Mid$(Z$,8,13);" TO COME 1st OR 2nd       " : Wait 25 : Return 
  1041.    If BTYPE(PTURN)=4 and RF1(PTURN)>0 and(RF2(PTURN)=0) and(RF1(PTURN)<>HB(PTURN)) Then RF2(PTURN)=HB(PTURN) : Z$=HOR$(RF2(PTURN)) : Locate 30,28 : Print Mid$(Z$,8,13);" TO COME 2nd OR 1st        " : Return 
  1042.    If BTYPE(PTURN)<3 Then Z$=HOR$(HB(PTURN)) : Locate 30,27 : Print Mid$(Z$,8,13);"                "
  1043.    Return 
  1044.    BB:
  1045.    If BTYPE(PTURN)>0 Then Limit Mouse X Hard(40),Y Hard(55) To X Hard(175),Y Hard(200) : Rem horses 
  1046.    If BTYPE(PTURN)>=3 and SF1(PTURN)=0 and(SF2(PTURN)=0) Then Pen 7 : Locate 5,27 : Print "CLICK ON ONE HORSE" : Pen 3 : Return 
  1047. Return 
  1048.    CLRBOXS:
  1049.    Ink 0,0
  1050.    Box 36,54 To 184,64 : Rem h1 
  1051.    Box 36,70 To 184,80 : Rem h2 
  1052.    Box 36,86 To 184,96 : Rem h3 
  1053.    Box 36,102 To 184,112 : Rem h4 
  1054.    Box 36,118 To 184,128 : Rem h5 
  1055.    Box 36,134 To 184,144 : Rem h6 
  1056.    Box 36,150 To 184,160 : Rem h7 
  1057.    Box 36,166 To 184,176 : Rem h8 
  1058.    Return 
  1059. End Proc
  1060. '==========================================
  1061. 'display bet made on racecard
  1062. Procedure _SBETS
  1063. 'display bet made on racecard
  1064. PB$="" : PB2$="" : PB3$=""
  1065. If PBET(PTURN)=0 Then Pop Proc
  1066. 'get stake in pb$
  1067. If BTYPE(PTURN)=2 or BTYPE(PTURN)=4 Then PB$="�"+Str$(PSTAKE(PTURN)/2)-" " : Goto GVX
  1068. PB$="�"+Str$(PSTAKE(PTURN))-" "
  1069. GVX:
  1070. 'get type of bet add to pb$
  1071. 'is it win bet? if yes pb2$=horse number hb  
  1072. If BTYPE(PTURN)=1 Then PB$=PB$+" WIN" : PB2$="HORSE "+Str$(HB(PTURN)) : PB3$=""
  1073. 'is it e/w bet?
  1074. If BTYPE(PTURN)=2 Then PB$=PB$+" E/W" : PB2$="HORSE "+Str$(HB(PTURN)) : PB3$=""
  1075. 'sfc?
  1076. If BTYPE(PTURN)=3 Then PB$=PB$+" SFC" : PB2$="HORSE "+Str$(SF1(PTURN)) : PB3$="HORSE "+Str$(SF2(PTURN))
  1077. 'rfc 
  1078. If BTYPE(PTURN)=4 Then PB$=PB$+" RFC" : PB2$="HORSE "+Str$(RF1(PTURN)) : PB3$="HORSE "+Str$(RF2(PTURN))
  1079. End Proc
  1080. '==========================================
  1081. 'tipster 
  1082. Procedure _TIPSTER
  1083. Dim GONE(8)
  1084. Hide On 
  1085. Load Iff "punter_files/tipster.iff",0
  1086. Reserve Zone 
  1087. Reserve Zone 3
  1088. Set Zone 1,0,4 To 639,65 : Rem DEAD CERT
  1089. Set Zone 2,0,67 To 639,163 : Rem tv man 
  1090. Set Zone 3,0,165 To 639,270 : Rem form man 
  1091. Show On 
  1092. '
  1093. Wait 25
  1094. FREDS:
  1095. K=0
  1096. Do 
  1097. If Mouse Key<>0 Then Goto REGSMATE
  1098. If Key State(69) Then Pop Proc
  1099. Loop 
  1100. '  
  1101. REGSMATE:
  1102. Do 
  1103. K=Mouse Zone
  1104. If K=<0 Then Goto FREDS
  1105. If K=1 Then Gosub CERT : Pop Proc
  1106. If K=2 Then Gosub TVMAN : Pop Proc
  1107. If K=3 Then Gosub FMAN : Pop Proc
  1108. Loop 
  1109. '
  1110. CERT:
  1111. 'only give 1 dead cert per season =given 
  1112. Load Iff "punter_files/dead_cert.iff",0
  1113. _MOUSE
  1114. If BHBDC=1 or GIVEN=1 Then Goto BYE
  1115. Gosub CDIST
  1116. If OKAY=0 Then Goto BYE
  1117. BHBDC=1
  1118. Add PCASH(PTURN),-100
  1119. DC=Rnd(1)
  1120. If DC<>1 Then DEADCERT=0 : DC=0
  1121. If DC=1
  1122. FUCKIT:
  1123. DEADCERT=OKAY
  1124. End If 
  1125. '
  1126. BYE:
  1127. Paper 7
  1128. If DC<>1 Then Locate 0,14 : Centre "SORRY NO DEAD CERT FOR THIS RACE!" : DEADCERT=0 : Goto GAZZA
  1129. If DC=1
  1130. Locate 0,14 : Centre "BOY, HAVE I GOT A TIP FOR YOU!!!"
  1131. Print : Print : Centre "PUT AS MUCH AS YOU CAN AFFORD ON:"
  1132. DC$=HOR$(DEADCERT) : DEADCERT$=Mid$(DC$,8,13)
  1133. Paper 1 : Print : Print : Centre DEADCERT$
  1134. GIVEN=1
  1135. End If 
  1136. '
  1137. GAZZA:
  1138. While Mouse Key=0 : Wend 
  1139. Return 
  1140. '
  1141. TVMAN:
  1142. Load Iff "punter_files/tv_man.iff",0
  1143. _MOUSE
  1144. Add PCASH(PTURN),-75
  1145. 'choose a rnd horse as a tip ie: this is a rip off!
  1146. 'bho means been here once already for this race so show same tip as last time
  1147. If BHO=1 Then Goto J
  1148. BHO=1
  1149. RR:
  1150. R1=Rnd(RNNERS)
  1151. R2=Rnd(RNNERS)
  1152. If R2=R1 Then Goto RR
  1153. If R2=0 or R1=0 Then Goto RR
  1154. RRR:
  1155. R3=Rnd(RNNERS)
  1156. If R3=R2 Then Goto RRR
  1157. If R3=R1 Then Goto RRR
  1158. If R3=0 Then Goto RRR
  1159. TV1$=HOR$(R1) : VV1$=Mid$(TV1$,8,13)
  1160. TV2$=HOR$(R2) : VV2$=Mid$(TV2$,8,13)
  1161. TV3$=HOR$(R3) : VV3$=Mid$(TV3$,8,13)
  1162. J:
  1163. Paper 4 : Pen 0
  1164. Locate 0,16 : Centre "THIS WILL BE THE 1-2-3 IN NEXT RACE!"
  1165. Pen 5 : Locate 0,18 : Centre ""+VV1$
  1166. Pen 1 : Locate 0,19 : Centre ""+VV2$
  1167. Pen 0 : Locate 0,20 : Centre ""+VV3$
  1168. Pen 3 : Print : Print : Centre "THANKYOU FOR YOUR CUSTOM"
  1169. While Mouse Key=0 : Wend 
  1170. Return 
  1171. '
  1172. '
  1173. FMAN:
  1174. Load Iff "punter_files/form_man.iff",0
  1175. _MOUSE
  1176. Add PCASH(PTURN),-25
  1177. 'if dist is a sprint (di) and runners>4 and draw is low best or low then tell em best drawn horse
  1178. GDRW=0 : For A=1 To 8 : RATING(A)=0 : Next A
  1179. Paper 7 : Pen 3 : Locate 0,10 : DWN=8 : ACR=19
  1180. If DI=<4 and RNNERS>4 and(DAW$="LOW BEST") or(DI<=4) and(DAW$="LOW (SPRINTS)") Then GDRW=1
  1181. If DI=<4 and RNNERS>4 and(DAW$="HIGH BEST") or(DI<=4) and(DAW$="HIGH (SPRINTS)") Then GDRW=RNNERS
  1182. If GDRW<>0 Then V$=HOR$(GDRW) : VV$=Mid$(V$,8,13) : Locate ACR,DWN : Print VV$+" IS WELL DRAWN" : Inc DWN
  1183. Inc RATING(GDRW)
  1184. For A=1 To RNNERS
  1185. HN=RNNING(A) : Rem get horse number 
  1186. C$=HCHAR$(HN)
  1187.  
  1188. 'find if likes course
  1189. C1$=Mid$(C$,2,2) : COUR=Val(C1$) : If MEETING$(COUR)=MEETING$(MEET) Then BESTCOURSE(A)=1 : RATING(A)=RATING(A)+2
  1190. 'distance
  1191. D1$=Mid$(C$,5,2) : DUR=Val(D1$) : If DUR=DI Then BESTDIST(A)=1 : RATING(A)=RATING(A)+5
  1192. 'going 
  1193. G1$=Mid$(C$,8,2) : GOUR=Val(G1$) : If GOUR=GOIN Then BESTGOING(A)=1 : RATING(A)=RATING(A)+3
  1194. Next A
  1195. For A=1 To RNNERS
  1196. If BESTCOURSE(A)=1 Then V$=HOR$(A) : VV$=Mid$(V$,8,13) : Locate ACR,DWN : Print VV$+" IS SUITED TO THIS TRACK" : Inc DWN
  1197. If BESTDIST(A)=1 Then V$=HOR$(A) : VV$=Mid$(V$,8,13) : Locate ACR,DWN : Print VV$+" RUNS BEST AT THIS DISTANCE" : Inc DWN
  1198. If BESTGOING(A)=1 Then V$=HOR$(A) : VV$=Mid$(V$,8,13) : Locate ACR,DWN : Print VV$+" RUNS WELL ON THIS GOING" : Inc DWN
  1199. Next A
  1200. For A=1 To RNNERS
  1201. W$=Mid$(HOR$(A),38,4)
  1202. STONE$=Left$(W$,1)
  1203. POUNDS$=Mid$(W$,3,2)
  1204. STONE=Val(STONE$)
  1205. POUNDS=Val(POUNDS$)
  1206. V$=HOR$(A) : VW$=Mid$(V$,8,13)
  1207. If STONE=8 Then Inc RATING(A) : Locate ACR,DWN : Print VW$+" HAS A SMALL WEIGHT ADVANTAGE" : Inc DWN
  1208. If STONE=7 Then RATING(A)=RATING(A)+3 : Locate ACR,DWN : Print VW$+" HAS A VERY LARGE WEIGHT ADVANTAGE" : Inc DWN
  1209. If STONE=9 and POUNDS>0 and POUNDS<10 Then Dec RATING(A) : Locate ACR,DWN : Print VW$+" HAS A SMALL WEIGHT DIS-ADVANTAGE" : Inc DWN
  1210. If STONE=9 and POUNDS>=10 Then RATING(A)=RATING(A)-4 : Locate ACR,DWN : Print VW$+" HAS A LOT OF WEIGHT TO CARRY" : Inc DWN
  1211. Next A
  1212.  
  1213. For A=1 To RNNERS : GONE(A)=1 : Next A : Rem For who has been scored  
  1214. For T=1 To RNNERS : Rem Find highest of non scored horses
  1215. PP=-1
  1216. For A=1 To RNNERS
  1217. If RATING(A)>PP and GONE(A)=1 : PP=RATING(A) : PPWHO=A : End If 
  1218. Next A
  1219. P(T)=PPWHO : Rem Record horse in positions array
  1220. GONE(PPWHO)=0 : Rem Score horse
  1221. Next T
  1222. TIP=P(1)
  1223. If RATING(TIP)<4 Then Print : Print : Pen 5 : Centre " THIS IS A DIFFICULT RACE, I SUGGEST NO BET!." : Goto H
  1224. V$=HOR$(TIP) : VV$=Mid$(V$,8,13)
  1225. Print : Print : Pen 1 : Centre " TIP:"+VV$
  1226. H:
  1227. While Mouse Key=0 : Pen Rnd(7) : Locate 0,28 : Centre "PRESS A MOUSE KEY" : Wait 3 : Wend 
  1228. For A=1 To 8 : BESTCOURSE(A)=0 : BESTDIST(A)=0 : BESTGOING(A)=0 : Next A
  1229. Fade 2 : Wait 30
  1230. Show On 
  1231. Return 
  1232. '
  1233. '
  1234. CDIST:
  1235. 'this is for dead cert, it returns a horse number in okay that can 
  1236. 'do the distance, therefore not messing form book up by picking a
  1237. 'sprinter to win a 16f race etc. 
  1238. '
  1239. OKAY=0
  1240. For A=1 To RNNERS
  1241. HON=RNNING(A) : Rem get horse number & see if any can do the distance
  1242. CQ$=HCHAR$(HON)
  1243. DVX$=Mid$(CQ$,5,2) : DIS=Val(DVX$) : If DIS=DI Then OKAY=A
  1244. Next A
  1245. Return 
  1246. End Proc
  1247. '==========================================
  1248. 'buy a horse 
  1249. Procedure _AUCTION
  1250. If HORSESFORSALE=0 Then Cls 0 : Locate 0,12 : Centre "NO HORSES FOR SALE" : Wait 75 : Pop Proc
  1251. If FIRSTLOOK=1 and HCOUNT=0 Then Cls 0 : Locate 0,12 : Centre "NO MORE HORSES FOR SALE" : Wait 75 : Pop Proc
  1252. NO=0
  1253. If PTURN=1 and P1OWNS>=24 Then NO=1
  1254. If PTURN=2 and P2OWNS>=24 Then NO=1
  1255. If PTURN=3 and P3OWNS>=24 Then NO=1
  1256. If PTURN=4 and P4OWNS>=24 Then NO=1
  1257. If NO=1 Then Cls 0 : Locate 0,12 : Centre "NOBODY WANTS TO SELL TO YOU" : Wait 75 : Pop Proc
  1258. Limit Mouse : Show On 
  1259. Screen Open 0,640,256,8,Hires
  1260. Flash Off : Curs Off : Paper 0 : Cls 0
  1261. Reserve Zone 
  1262. Reserve Zone 25
  1263. _MOUSE
  1264.  Flash 2,"(fff,5)(222,5)"
  1265. 'set up some horses for sale 
  1266. If FIRSTLOOK=1 Then Goto FUCK
  1267. HSOLD=P1OWNS+P2OWNS+P3OWNS+P4OWNS
  1268. If HSOLD=0 Then HSOLD=20 : Rem rnd amount for now 
  1269. For A=1 To 25 : TEMP(A)=0 : Next A
  1270. HERR=0
  1271. APS:
  1272. HFS=Rnd(HSOLD) : Rem horses for sale
  1273. If HFS>99-HSOLD Then Goto APS
  1274. If HFS=0 Then HFS=1
  1275. If HFS>20 Then HFS=20
  1276. HCOUNT=HFS
  1277. 'HFS=24 : Rem============for testing 
  1278. HXX:
  1279. For A=1 To HFS
  1280. Inc FCOUNT : If FCOUNT>100 Then FCOUNT=1
  1281. DFL:
  1282. If FCOUNT>100 Then FCOUNT=1
  1283. For B=1 To HFS
  1284. If FCOUNT=TEMP(B) Then HERR=1
  1285. If OWN1(FCOUNT)=1 Then HERR=1 : Rem does anyone  already own it? 
  1286. If OWN2(FCOUNT)=1 Then HERR=1
  1287. If OWN3(FCOUNT)=1 Then HERR=1
  1288. If OWN4(FCOUNT)=1 Then HERR=1
  1289. Next B
  1290. If HERR=1 Then Inc FCOUNT : HERR=0 : Goto DFL
  1291. TEMP(A)=FCOUNT
  1292. HLIST(A)=FCOUNT : Rem hlist(a)=stote thehorse numbers
  1293. Next A
  1294. FIRSTLOOK=1
  1295.  
  1296. FUCK:
  1297. B=16 : C=22 : For A=1 To HFS
  1298. Set Zone A,24,B+8 To 584,C+8
  1299. 'Box 24,B+8 To 584,C+8 
  1300. Add B,8 : Add C,8
  1301. Next A
  1302. Set Zone HFS+1,0,0 To 64,8
  1303. '
  1304.  
  1305. 'work out value of each horse: 
  1306. ' 4yo=50000    .... age(N) 
  1307. '5yo=40000 
  1308. '6yo=30000 
  1309. 'add 1000 for each win ....WINS(N) 
  1310. 'subtract 100 for each loss...runs-wins=losses 
  1311. 'add 10% of total prizemoney won by that horse ....pm(N)/10  
  1312. '
  1313. For A=1 To HFS
  1314. XI=HLIST(A)
  1315. If AGE(XI)=4 Then VU(A)=50000
  1316. If AGE(XI)=5 Then VU(A)=40000
  1317. If AGE(XI)=6 Then VU(A)=30000
  1318. W=WINS(XI) : W=W*1000 : Add VU(A),W
  1319. R=RNS(XI)-WINS(XI) : Add VU(A),-R*100
  1320. P=PM(XI)/10 : Add VU(A),P
  1321. Next A
  1322.  
  1323. Home : Pen 2 : Inverse On : Print "EXIT" : Inverse Off : Pen 1 : Inverse On : Home : Centre "HORSES CURRENTLY FOR SALE" : Inverse Off 
  1324. Pen 7 : Locate 3,2 : Under On : Print "LAST 6  NAME           TRAINER    AGE/WGHT WINS/RUNS PRIZE     VALUE    "
  1325. Pen 5
  1326. Under Off 
  1327. SZX:
  1328. Pen 5
  1329. For A=1 To HFS
  1330. XI=HLIST(A)
  1331. If XI=0 Then Locate 3,A+2 : Print Space$(76) : Goto HAZ
  1332. Locate 3,A+2 : Print H$(XI);"   ";WINS(XI);" /";RNS(XI)
  1333. Locate 56,A+2 : Print "�";PM(XI)
  1334. Locate 66,A+2 : Print "�";VU(A)
  1335. HAZ:
  1336. Next A
  1337. Pen 1 : Locate 3,29 : Print "PLAYER ";PTURN;":  ï¿½";PCASH(PTURN);"       "
  1338. FREDD:
  1339. While Mouse Key=0 : Wend 
  1340. K=Mouse Zone
  1341. If K=HFS+1 Then Pop Proc
  1342. If HLIST(K)=0 Then Goto FREDD
  1343. If K>0 Then Gosub BUY : Goto SZX
  1344. Goto FREDD
  1345. BUY:
  1346. Pen 2
  1347. XI=HLIST(K) : B$=Mid$(H$(XI),8,13)
  1348. If PTURN=1 and P1OWNS>=24 Then Locate 30,29 : Print "NOBODY WANTS TO SELL TO YOU" : Wait 75 : Gosub AQP : Return 
  1349. If PTURN=2 and P2OWNS>=24 Then Locate 30,29 : Print "NOBODY WANTS TO SELL TO YOU" : Wait 75 : Gosub AQP : Return 
  1350. If PTURN=3 and P3OWNS>=24 Then Locate 30,29 : Print "NOBODY WANTS TO SELL TO YOU" : Wait 75 : Gosub AQP : Return 
  1351. If PTURN=4 and P4OWNS>=24 Then Locate 30,29 : Print "NOBODY WANTS TO SELL TO YOU" : Wait 75 : Gosub AQP : Return 
  1352. If PCASH(PTURN)<VU(K) Then Locate 30,29 : Print "YOU CAN'T AFFORD IT" : Wait 75 : Gosub AQP : Return 
  1353. If OWN1(XI)=1 or OWN2(XI)=1 or OWN3(XI)=1 or OWN4(XI)=1 Then Locate 30,29 : Print "HORSE NOT FOR SALE" : Wait 75 : Gosub AQP : Return 
  1354. Locate 30,29 : Print "BUY ";B$;" PRESS Y/N?"
  1355. Do 
  1356. Clear Key 
  1357. K$="" : While K$="" : K$=Inkey$ : Wend 
  1358. K$=Upper$(K$)
  1359. If K$="N" Then Gosub AQP : Return 
  1360. If K$="Y" Then Gosub OWN : Locate 30,29 : HLIST(K)=0 : Print "SALE CONFIRMED:               " : Wait 50 : Dec HCOUNT : PCASH(PTURN)=PCASH(PTURN)-VU(K) : Gosub AQP : Return 
  1361. Loop 
  1362. AQP:
  1363. Locate 30,29 : Print Space$(45)
  1364. Pen 1 : Locate 3,29 : Print "PLAYER ";PTURN;":  ï¿½";PCASH(PTURN);"       "
  1365. Return 
  1366. OWN:
  1367. XI=HLIST(K)
  1368. If PTURN=1 Then OWN1(XI)=1 : Inc P1OWNS
  1369. If PTURN=2 Then OWN2(XI)=1 : Inc P2OWNS
  1370. If PTURN=3 Then OWN3(XI)=1 : Inc P3OWNS
  1371. If PTURN=4 Then OWN4(XI)=1 : Inc P4OWNS
  1372. Dec HORSESFORSALE
  1373. Return 
  1374. End Proc
  1375. '==========================================
  1376. 'sell a horse
  1377. Procedure _SELL
  1378. If JUSTCHECKING=1 Then Goto FZA
  1379. HFOS=0
  1380. Limit Mouse : Show On 
  1381. Screen Open 0,640,256,8,Hires
  1382. Flash Off : Curs Off : Paper 0 : Cls 0
  1383. Flash 2,"(fff,5)(222,5)"
  1384. _MOUSE
  1385. For A=1 To 27 : SLIST(A)=0 : Next A
  1386. FZA:
  1387. If PTURN<>1 Then Goto E
  1388. B=0 : For A=1 To 100
  1389. If OWN1(A)=1 Then Inc B : SLIST(B)=A
  1390. Next A : HFOS=B : Goto EEEE
  1391. E:
  1392. If PTURN<>2 Then Goto EE
  1393. B=0 : For A=1 To 100
  1394. If OWN2(A)=1 Then Inc B : SLIST(B)=A
  1395. Next A : HFOS=B : Goto EEEE
  1396. EE:
  1397. If PTURN><3 Then Goto EEE
  1398. B=0 : For A=1 To 100
  1399. If OWN3(A)=1 Then Inc B : SLIST(B)=A
  1400. Next A : HFOS=B : Goto EEEE
  1401. EEE:
  1402. If PTURN<>4 Then Goto EEEE
  1403. B=0 : For A=1 To 100
  1404. If OWN4(A)=1 Then Inc B : SLIST(B)=A
  1405. Next A : HFOS=B
  1406. EEEE:
  1407. If HFOS<=0 and JUSTCHECKING=0 Then Locate 0,12 : Centre "YOU DON'T OWN ANY HORSES" : Wait 75 : Pop Proc
  1408. If JUSTCHECKING=1 Then Goto HMM
  1409. Reserve Zone 
  1410. Reserve Zone HFOS+2
  1411. B=16 : C=22 : For A=1 To HFOS
  1412. Set Zone A,24,B+8 To 584,C+8
  1413. 'Box 24,B+8 To 584,C+8 
  1414. Add B,8 : Add C,8
  1415. Next A
  1416. Set Zone HFOS+1,0,0 To 64,8 : Rem exit 
  1417. Set Zone HFOS+2,268,230 To 368,240 : Rem insure 
  1418. 'work out value of each horse: 
  1419. ' 4yo=50000    .... age(N) 
  1420. '5yo=40000 
  1421. '6yo=30000 
  1422. 'add 1000 for each win ....WINS(N) 
  1423. 'subtract 100 for each loss...runs-wins=losses 
  1424. 'add 10% of total prizemoney won by that horse ....pm(N)/10  
  1425. '
  1426. HMM:
  1427. For A=1 To HFOS
  1428. XI=SLIST(A)
  1429. If AGE(XI)=4 Then VU(A)=50000
  1430. If AGE(XI)=5 Then VU(A)=40000
  1431. If AGE(XI)=6 Then VU(A)=30000
  1432. W=WINS(XI) : W=W*1000 : Add VU(A),W
  1433. R=RNS(XI)-WINS(XI) : Add VU(A),-R*100
  1434. P=PM(XI)/10 : Add VU(A),P
  1435. Next A
  1436. If JUSTCHECKING=1 Then Goto GREAT
  1437. Home : Pen 2 : Inverse On : Print "EXIT" : Inverse Off 
  1438. Pen 1 : Home : Inverse On : Centre "PLAYER "+Str$(PTURN)+" HORSE(S) OWNED " : Inverse Off 
  1439. Pen 7 : Locate 3,2 : Under On : Print "LAST 6  NAME           TRAINER    AGE/WGHT WINS/RUNS PRIZE     VALUE    "
  1440. Pen 5
  1441. Under Off 
  1442. SSSS:
  1443. Pen 5
  1444.  
  1445. GREAT:
  1446. For A=1 To HFOS
  1447. XI=SLIST(A)
  1448. If XI=0 Then Locate 3,A+2 : Print Space$(76) : Goto FUU
  1449. 'Gosub CHINS 
  1450. If JUSTCHECKING=1 Then Goto BOLL
  1451. Locate 3,A+2 : Print H$(XI);"   ";WINS(XI);" /";RNS(XI)
  1452. Locate 56,A+2 : Print "�";PM(XI)
  1453. Locate 66,A+2 : Print "�";VU(A)
  1454. BOLL:
  1455. TUT=TUT+VU(A)
  1456. If PTURN=1 Then P1STOCK=TUT
  1457. If PTURN=2 Then P2STOCK=TUT
  1458. If PTURN=3 Then P3STOCK=TUT
  1459. If PTURN=4 Then P4STOCK=TUT
  1460. FUU:
  1461. Next A
  1462. If JUSTCHECKING=1 Then JUSTCHECKING=0 : Pop Proc
  1463. GAZZA:
  1464. Paper 0
  1465. Colour 6,$4A
  1466. Pen 1 : Locate 3,29 : Print "PLAYER ";PTURN;":  ï¿½";PCASH(PTURN)
  1467. Pen 4 : Locate 54,29 : Print "TOTAL VALUE=�";TUT;"      "
  1468. 'Pen 6 : Paper 7 : Locate 34,28 : Print "  CALL VET  " 
  1469. 'Pen 6 : Paper 5 : Locate 34,29 : Print "INSURE HORSE" 
  1470. Paper 0
  1471. Wait 10 : K=0
  1472. FREDD:
  1473. While Mouse Key=0 : Wend 
  1474. K=Mouse Zone
  1475. 'Locate 0,30 : Print "k=";K;"  " 
  1476. If K=0 or K>27 Then Goto FREDD
  1477. 'If K=HFOS+2 and(K<28) Then Locate 27,29 : Print "CLICK ON HORSE TO INSURE" : Gosub GIT : Goto GAZZA 
  1478. If K=HFOS+1 Then Pop Proc
  1479. If SLIST(K)=0 Then Goto FREDD
  1480. If K>0 and SLIST(K)>0 Then Gosub SELL : If NO=1 Then Goto GAZZA : Else Goto SSSS
  1481. Goto FREDD
  1482.  
  1483. 'get horse to insure 
  1484. 'GIT:
  1485. 'While Mouse Key=0 : Wend  
  1486. 'K=Mouse Zone
  1487. ''Locate 0,25 : Print K;"  " 
  1488. 'If K>0 and SLIST(K)>0 Then Gosub INSURE : Return  
  1489. 'Goto GIT
  1490. 'Return  
  1491.  
  1492. SELL:
  1493. Pen 2
  1494. XI=SLIST(K) : B$=Mid$(H$(XI),8,13)
  1495. Locate 24,30 : Print "SELL ";B$;" PRESS Y/N?"
  1496. NO=0
  1497. Do 
  1498. Clear Key 
  1499. K$="" : While K$="" : K$=Inkey$ : Wend 
  1500. K$=Upper$(K$)
  1501. If K$="N" Then Gosub AQP : NO=1 : Return 
  1502. If K$="Y" Then Gosub NOWN : Locate 24,30 : Print "          SALE CONFIRMED                    " : Wait 50 : PCASH(PTURN)=PCASH(PTURN)+VU(K) : Gosub AQP : Return 
  1503. Loop 
  1504.  
  1505. 'INSURE: 
  1506. 'Locate 23,29 : Print Space$(31) 
  1507. 'XI=SLIST(K) : B$=Mid$(H$(XI),8,13)
  1508. 'Locate 16,30 : Print "TO INSURE ";B$;" COSTS ï¿½";VU(K)/20;" PRESS Y/N?"
  1509. 'Do  
  1510. 'Clear Key 
  1511. 'K$="" : While K$="" : K$=Inkey$ : Wend  
  1512. 'K$=Upper$(K$) 
  1513. 'If K$="N" Then Gosub AQP : Return 
  1514. 'If K$="Y" Then Gosub INSCH : Return 
  1515. 'Loop  
  1516. 'Return  
  1517.  
  1518. 'INSCH:
  1519. 'check here if horse already insured 
  1520. 'Locate 16,30 : Print Space$(60) 
  1521. 'If PCASH(PTURN)<VU(K)/20 Then Locate 28,30 : Print "NOT ENOUGH CASH!" : Wait 50 : Locate 24,30 : Print Space$(55) : Return  
  1522. 'CANT=0 : Gosub MAY : If CANT=1 Then Locate 28,30 : Print "HORSE ALREADY INSURED" : Wait 50 : Locate 24,30 : Print Space$(55) : Return 
  1523. 'If PTURN=1 Then HI1(K)=1 : A=K : Gosub CHINS : Add PCASH(PTURN),-VU(K)/20 : Locate 25,30 : Print "HORSE INSURED FOR ONE SEASON" : Gosub INSURED : Wait 50 : Locate 24,30 : Print Space$(55) : Return  
  1524. 'If PTURN=2 Then HI2(K)=1 : A=K : Gosub CHINS : Add PCASH(PTURN),-VU(K)/20 : Locate 25,30 : Print "HORSE INSURED FOR ONE SEASON" : Gosub INSURED : Wait 50 : Locate 24,30 : Print Space$(55) : Return  
  1525. 'If PTURN=3 Then HI3(K)=1 : A=K : Gosub CHINS : Add PCASH(PTURN),-VU(K)/20 : Locate 25,30 : Print "HORSE INSURED FOR ONE SEASON" : Gosub INSURED : Wait 50 : Locate 24,30 : Print Space$(55) : Return  
  1526. 'If PTURN=4 Then HI4(K)=1 : A=K : Gosub CHINS : Add PCASH(PTURN),-VU(K)/20 : Locate 25,30 : Print "HORSE INSURED FOR ONE SEASON" : Gosub INSURED : Wait 50 : Locate 24,30 : Print Space$(55) : Return  
  1527. 'Return  
  1528. AQP:
  1529. Locate 0,30 : Print Space$(79)
  1530. Pen 1 : Locate 3,29 : Print "PLAYER ";PTURN;":  ï¿½";PCASH(PTURN)
  1531. 'Pen 6 : Paper 5 : Locate 34,29 : Print "INSURE HORSE" 
  1532. Paper 0
  1533. Return 
  1534. NOWN:
  1535. XI=SLIST(K) : SLIST(K)=0
  1536. If PTURN=1 Then OWN1(XI)=0 : Dec P1OWNS
  1537. If PTURN=2 Then OWN2(XI)=0 : Dec P2OWNS
  1538. If PTURN=3 Then OWN3(XI)=0 : Dec P3OWNS
  1539. If PTURN=4 Then OWN4(XI)=0 : Dec P4OWNS
  1540. Inc HORSESFORSALE
  1541. TUT=0
  1542. Return 
  1543.  
  1544. 'INSURED:
  1545. 'XI=SLIST(K) 
  1546. 'If PTURN=1 Then INS1(XI)=1
  1547. 'If PTURN=2 Then INS2(XI)=1
  1548. 'If PTURN=3 Then INS3(XI)=1
  1549. 'If PTURN=4 Then INS4(XI)=1
  1550. 'Return  
  1551.  
  1552. 'MAY:
  1553. 'XI=SLIST(K) 
  1554. 'If PTURN=1 and INS1(XI)=1 Then CANT=1 
  1555. 'If PTURN=2 and INS2(XI)=1 Then CANT=1 
  1556. 'If PTURN=3 and INS3(XI)=1 Then CANT=1 
  1557. 'If PTURN=4 and INS4(XI)=1 Then CANT=1 
  1558. 'Return  
  1559. 'CHINS:
  1560. 'Pen 6 
  1561. 'If PTURN=1 and HI1(A)=1 Then Locate 78,A+2 : Print "I"
  1562. 'If PTURN=2 and HI2(A)=1 Then Locate 78,A+2 : Print "I"
  1563. 'If PTURN=3 and HI3(A)=1 Then Locate 78,A+2 : Print "I"
  1564. 'If PTURN=4 and HI4(A)=1 Then Locate 78,A+2 : Print "I"
  1565. 'Pen 5 
  1566. 'Return  
  1567. End Proc
  1568. '==========================================
  1569. 'display all bets made before race 
  1570. Procedure _DISPBETS
  1571. If PBET(1)=0 and PBET(2)=0 and(PBET(3)=0) and(PBET(4)=0) Then Pop Proc
  1572. Screen Open 0,320,255,32,Lowres
  1573. Flash Off : Curs Off : Hide : Paper 0 : Pen 6 : Cls 0
  1574. Get Sprite Palette 
  1575. 'player 1's bet and horse
  1576. Colour 0,$30
  1577. If PBET(1)=1
  1578. PTURN=1 : Gosub GCHQ
  1579. _SBETS
  1580. Locate 6,6 : Print "PLAYER 1" : Locate 6,8 : Print PB$ : Locate 6,10 : Print PB2$
  1581. End If 
  1582.  
  1583. 'NO BET P1 
  1584. If PBET(1)=0
  1585. Pen 1
  1586. Locate 6,6 : Print "PLAYER 1" : Locate 6,8 : Print "NO BET"
  1587. End If 
  1588. If BTYPE(1)=0 Then Goto GGFP
  1589. If BTYPE(1)<3 Then Paste Bob 50,0,IM
  1590. If BTYPE(1)>2 Then Locate 6,12 : Print PB3$
  1591. If BTYPE(1)=3 Then Gosub GCHQ0 : Paste Bob 50,0,IM : Gosub GCHQ2 : Paste Bob 30,0,IM
  1592. If BTYPE(1)=4 Then Gosub GCHQ0 : Paste Bob 50,0,IM : Gosub GCHQ2 : Paste Bob 30,0,IM
  1593. GGFP:
  1594. 'player 2's bet and horse
  1595. If PBET(2)=1
  1596. PTURN=2 : Gosub GCHQ
  1597. _SBETS
  1598. Pen 6
  1599. Locate 22,6 : Print "PLAYER 2" : Locate 22,8 : Print PB$ : Locate 22,10 : Print PB2$ : 
  1600. End If 
  1601. 'NO BET P2 
  1602. If PBET(2)=0
  1603. Pen 1
  1604. Locate 22,6 : Print "PLAYER 2" : Locate 22,8 : Print "NO BET"
  1605. End If 
  1606. If BTYPE(2)=0 Then Goto APQW
  1607. If BTYPE(2)<3 Then Paste Bob 177,0,IM
  1608. If BTYPE(2)>2 Then Locate 22,12 : Print PB3$
  1609. If BTYPE(2)=3 Then Gosub GCHQ0 : Paste Bob 177,0,IM : Gosub GCHQ2 : Paste Bob 157,0,IM
  1610. If BTYPE(2)=4 Then Gosub GCHQ0 : Paste Bob 177,0,IM : Gosub GCHQ2 : Paste Bob 157,0,IM
  1611. APQW:
  1612. 'player 3's bet and horse
  1613. If PBET(3)=1
  1614. PTURN=3 : Gosub GCHQ
  1615. _SBETS
  1616. Pen 6
  1617. Locate 6,21 : Print "PLAYER 3" : Locate 6,23 : Print PB$ : Locate 6,25 : Print PB2$ : 
  1618. End If 
  1619. 'NO BET P3 
  1620. If PBET(3)=0
  1621. Pen 1
  1622. Locate 6,21 : Print "PLAYER 3" : Locate 6,23 : Print "NO BET"
  1623. End If 
  1624. If BTYPE(3)=0 Then Goto XXHH
  1625. If BTYPE(3)>2 Then Locate 6,27 : Print PB3$
  1626. If BTYPE(3)<3 Then Paste Bob 50,120,IM
  1627. If BTYPE(3)=3 Then Gosub GCHQ0 : Paste Bob 50,120,IM : Gosub GCHQ2 : Paste Bob 30,120,IM
  1628. If BTYPE(3)=4 Then Gosub GCHQ0 : Paste Bob 50,120,IM : Gosub GCHQ2 : Paste Bob 30,120,IM
  1629.  
  1630. XXHH:
  1631. 'player 4's bet and horse
  1632. If PBET(4)=1
  1633. PTURN=4 : Gosub GCHQ
  1634. Pen 6
  1635. _SBETS
  1636. Pen 5
  1637. Locate 22,21 : Print "PLAYER 4" : Locate 22,23 : Print PB$ : Locate 22,25 : Print PB2$ : 
  1638. End If 
  1639. 'NO BET P4 
  1640. If PBET(4)=0
  1641. Pen 1
  1642. Locate 22,21 : Print "PLAYER 4" : Locate 22,23 : Print "NO BET"
  1643. End If 
  1644. If BTYPE(4)=0 Then Goto TZM
  1645. If BTYPE(4)<3 Then Paste Bob 177,120,IM
  1646. If BTYPE(4)>2 Then Locate 22,27 : Print PB3$
  1647. If BTYPE(4)=3 Then Gosub GCHQ0 : Paste Bob 177,120,IM : Gosub GCHQ2 : Paste Bob 157,120,IM
  1648. If BTYPE(4)=4 Then Gosub GCHQ0 : Paste Bob 177,120,IM : Gosub GCHQ2 : Paste Bob 157,120,IM
  1649. TZM:
  1650. While Mouse Key=0 : Wend 
  1651. Pop Proc
  1652. GCHQ:
  1653. If HB(PTURN)=1 Then IM=1
  1654. If HB(PTURN)=2 Then IM=5
  1655. If HB(PTURN)=3 Then IM=9
  1656. If HB(PTURN)=4 Then IM=13
  1657. If HB(PTURN)=5 Then IM=1
  1658. If HB(PTURN)=6 Then IM=5
  1659. If HB(PTURN)=7 Then IM=9
  1660. If HB(PTURN)=8 Then IM=13
  1661. Return 
  1662. GCHQ2:
  1663. If SF2(PTURN)=1 or RF2(PTURN)=1 Then IM=1
  1664. If SF2(PTURN)=2 or RF2(PTURN)=2 Then IM=5
  1665. If SF2(PTURN)=3 or RF2(PTURN)=3 Then IM=9
  1666. If SF2(PTURN)=4 or RF2(PTURN)=4 Then IM=13
  1667. If SF2(PTURN)=5 or RF2(PTURN)=5 Then IM=1
  1668. If SF2(PTURN)=6 or RF2(PTURN)=6 Then IM=5
  1669. If SF2(PTURN)=7 or RF2(PTURN)=7 Then IM=9
  1670. If SF2(PTURN)=8 or RF2(PTURN)=8 Then IM=13
  1671. Return 
  1672. GCHQ0:
  1673. If SF1(PTURN)=1 or RF1(PTURN)=1 Then IM=1
  1674. If SF1(PTURN)=2 or RF1(PTURN)=2 Then IM=5
  1675. If SF1(PTURN)=3 or RF1(PTURN)=3 Then IM=9
  1676. If SF1(PTURN)=4 or RF1(PTURN)=4 Then IM=13
  1677. If SF1(PTURN)=5 or RF1(PTURN)=5 Then IM=1
  1678. If SF1(PTURN)=6 or RF1(PTURN)=6 Then IM=5
  1679. If SF1(PTURN)=7 or RF1(PTURN)=7 Then IM=9
  1680. If SF1(PTURN)=8 or RF1(PTURN)=8 Then IM=13
  1681. Return 
  1682. End Proc
  1683. '==========================================
  1684. 'show the race graphically 
  1685. '
  1686. Procedure _RACE
  1687. '
  1688. BHO=0
  1689. Fade 3
  1690. Load Iff "punter_files/key.iff",0
  1691. Clear Key 
  1692. Do 
  1693. M=Mouse Key
  1694. If M=1 Then QUICKRACE=0 : Goto SACKOFSHIT
  1695. If Inkey$=" " Then QUICKRACE=1 : Goto SACKOFSHIT
  1696. Loop 
  1697. SACKOFSHIT:
  1698. Screen Close 0
  1699. '
  1700. Load "punter_files/track_bot.abk",3
  1701. Unpack 3 To 3
  1702. Screen Hide 3
  1703. Screen Display 3,120,250,,
  1704. Channel 14 To Screen Offset 3
  1705. Amal 14,"X:Let X=0;Loop:Let X=X+2;Pause; If X>318 Jump X; Jump Loop"
  1706. Erase 3
  1707. '
  1708. Load "punter_files/samples.abk",3
  1709. A$="" : B$="" : C$="" : D$="" : E$="" : F$="" : G$="" : H$=""
  1710. '
  1711. '*the top scrolling screen 
  1712. Unpack 14 To 1
  1713. Screen Hide 1
  1714. Screen Display 1,112,40,,
  1715. '
  1716. '* scrolling rails   
  1717. Unpack 8 To 2
  1718. Screen Hide 2
  1719. Screen Display 2,120,62,,
  1720. Channel 15 To Screen Offset 2
  1721. Amal 15,"X:Let X=0;Loop:Let X=X+1;Pause; If X>304 Jump X; Jump Loop"
  1722. '
  1723. Amal On 
  1724. '
  1725. Screen Open 0,370,190,32,Lowres
  1726. Screen Display 0,100,80,,
  1727. Double Buffer 
  1728. Get Sprite Palette 
  1729. Flash Off 
  1730. Curs Off 
  1731. Colour 0,$30
  1732. Colour Back 0
  1733. Hide : Cls 0
  1734. Autoback 0
  1735. Update Off 
  1736. Screen To Front 3
  1737. Screen Show 3
  1738. Screen Show 2
  1739. Screen Show 1
  1740. Dim X(8) : Dim D(8)
  1741. '*x()= x coord of horses   d(8) y coord  
  1742. '
  1743. 'Dim P(8) : Rem These two help display the positions 
  1744. Dim GONE(8)
  1745. For A=1 To 8 : P(A)=0 : Next A
  1746. '
  1747. '  
  1748. For A=1 To RNNERS : X(A)=0 : Next A : Rem *clear x coords  
  1749. For A=1 To RNNERS : D(A)=Z : Add Z,20 : Next A : Rem* set y positions 
  1750.  
  1751. For A=1 To RNNERS
  1752. Channel A To Bob A
  1753. Channel 1 To Bob 1
  1754. A$="Anim 0,(1,6)(2,6)(3,6)(4,6);"
  1755. Bob 1,100,10,1
  1756. Amal 1,A$
  1757. Amal On 
  1758. '*the animations 
  1759. A$="Anim 0,(1,6)(2,6)(3,6)(4,6);"
  1760. B$="Anim 0,(5,6)(6,6)(7,6)(8,6);"
  1761. C$="Anim 0,(9,6)(10,6)(11,6)(12,6);"
  1762. D$="Anim 0,(13,6)(14,6)(15,6)(16,6);"
  1763. E$="Anim 0,(1,6)(2,6)(3,6)(4,6);"
  1764. F$="Anim 0,(5,6)(6,6)(7,6)(8,6);"
  1765. G$="Anim 0,(9,6)(10,6)(11,6)(12,6);"
  1766. H$="Anim 0,(13,6)(14,6)(15,6)(16,6)"
  1767. Bob A,X(A),D(A),A
  1768. Next A
  1769. Bob 1,X(1),D(1),1
  1770. Amal 1,A$
  1771. Bob 2,X(2),D(2),5
  1772. Amal 2,B$
  1773. Bob 3,X(3),D(3),9
  1774. Amal 3,C$
  1775. Bob 4,X(4),D(4),13
  1776. Amal 4,D$
  1777. If RNNERS>=5
  1778. Bob 5,X(5),D(5),1
  1779. Amal 5,E$
  1780. End If 
  1781. If RNNERS>=6
  1782. Bob 6,X(6),D(6),5
  1783. Amal 6,F$
  1784. End If 
  1785. If RNNERS>=7
  1786. Bob 7,X(7),D(7),9
  1787. Amal 7,G$
  1788. End If 
  1789. If RNNERS>=8
  1790. Bob 8,X(8),D(8),13
  1791. Amal 8,H$
  1792. End If 
  1793. Amal On 
  1794.  
  1795. '* THE RACE
  1796.  
  1797. '===============================start race=========================
  1798. Randomize Timer
  1799. Hide 
  1800. Screen 1
  1801. For A=1 To RNNERS : SPEED=SPEED+ODD(A) : IRO(A)=ODD(A) : Next A
  1802. '========================
  1803. 'this is where we tamper with the odds so they dont all finish in odds order 
  1804.  
  1805. 'just do a randomly run race once in a while 
  1806. If Rnd(55)=1 Then For A=1 To RNNERS : IRO(A)=Rnd(6)+1 : Next A : Goto FR
  1807.  
  1808. 'run as odds sugesst once in a while 
  1809. If Rnd(10)=1 Then For A=1 To RNNERS : IRO(A)=ODD(A) : Next : Goto FR
  1810.  
  1811. 'if above two fail then tweak some form  
  1812. For A=1 To RNNERS
  1813. HN=RNNING(A) : Rem get horse number 
  1814. C$=HCHAR$(HN)
  1815. WD=0 : WG=1
  1816. 'is race distance same as horses best distance?  
  1817. D1$=Mid$(C$,5,2) : DUR=Val(D1$) : II=IRO(A) : If DUR=DI Then II=II/2 : IRO(A)=II : Else WD=1
  1818. 'check going 
  1819. G1$=Mid$(C$,8,2) : GOUR=Val(G1$) : II=IRO(A) : If GOUR=GOIN Then II=II-3 : IRO(A)=II : Else WG=1 : II=II+3 : IRO(A)=II
  1820. If IRO(A)<1 Then IRO(A)=1
  1821. 'if not right dist +1 or -1 then make as if a 10/1 shot ie: lose   
  1822. If WD=1 and DUR>DI+1 or(DUR<DI+1) Then IRO(A)=10
  1823. 'make as if a 3/1 shot minimum if wrong going
  1824. 'find if likes course
  1825. C1$=Mid$(C$,2,2) : COUR=Val(C1$) : If MEETING$(COUR)=MEETING$(MEET) Then Dec IRO(A)
  1826. If WG=1 and IRO(A)<4 Then IRO(A)=3
  1827. 'if jockey of each horse has good win ratio cut in race odds 
  1828. If JWINS(A)>=JRIDE(A)/4 Then Dec IRO(A)
  1829. If JWINS(A)>=JRIDE(A)/2 Then Add IRO(A),-2
  1830. Next A
  1831. 'do draw adv 
  1832. If DI=<4 and RNNERS>4 and(DAW$="LOW BEST") or(DI<=4) and(DAW$="LOW (SPRINTS)") Then Dec IRO(1)
  1833. If DI=<4 and RNNERS>4 and(DAW$="HIGH BEST") or(DI<=4) and(DAW$="HIGH (SPRINTS)") Then Dec IRO(RNNERS)
  1834. 'checks weights
  1835. For A=1 To RNNERS : HN=RNNING(A) : VV$=WEIGHT$(HN) : STX$=Left$(VV$,1) : PO$=Mid$(VV$,3,2)
  1836. ST=Val(STX$) : POU=Val(PO$)
  1837. If ST=8 Then Dec IRO(A)
  1838. If ST=7 Then Add IRO(A),-2
  1839. If ST=9 and POU>0 and POU<5 Then Inc IRO(A)
  1840. If ST=9 and POU=>4 and POU<10 Then Add IRO(A),2
  1841. If ST=9 and POU>=10 Then Add IRO(A),3
  1842. Next A
  1843. FR:
  1844. If DEADCERT>0 and Rnd(25)<>1 Then IRO(DEADCERT)=2
  1845.  
  1846. For A=1 To RNNERS
  1847. If IRO(A)<1 Then IRO(A)=1
  1848. SPEED=SPEED+IRO(A)
  1849. Next A
  1850. '========= 
  1851. Screen 0
  1852. TRAIN=0
  1853. Sam Bank 3
  1854. Sam Loop On 
  1855. Sam Play 1
  1856. If QUICKRACE=1 Then Centre "QUICK RACE ACTIVE"
  1857. Do 
  1858. KK$=Inkey$
  1859. Screen Swap : Wait Vbl 
  1860. Bob Clear 
  1861. If KK$="f" Then Gosub FZ
  1862. If KK$="b" Then Gosub SEEBETS
  1863. KK$=Inkey$
  1864. For A=1 To RNNERS
  1865. If Rnd(IRO(A))=0
  1866. Inc X(A)
  1867. Move X A,"(1,1,2)" : Move On(A)
  1868. End If 
  1869. '****bad luck in running back 1*   
  1870. If KK$="b" Then Gosub SEEBETS
  1871. If KK$="f" Then Gosub FZ
  1872. KK$=Inkey$
  1873. If Rnd(100)=1
  1874. Dec X(A)
  1875. Move X A,"(1,-1,2)" : Move On(A)
  1876. End If 
  1877. If SPEED>35 and Rnd(2)=0 Then Inc X(A) : Move X A,"(1,1,2)" : Move On(A)
  1878. '
  1879. '==================if having a quick race move each horse an extra move
  1880. If QUICKRACE=1 and IRO(A)<Rnd(9)+1
  1881. Inc X(A) : Move X A,"(1,1,4)" : Move On(A)
  1882. End If 
  1883. If KK$="b" Then Gosub SEEBETS
  1884. If KK$="f" Then Gosub FZ
  1885. KK$=Inkey$
  1886. '
  1887. MG:
  1888. If X Bob(A)>=300 : Rem *if x coord is>=300 then jump to results   
  1889. Goto RACEOVER
  1890. End If 
  1891. If KK$="f" Then Gosub FZ
  1892. If KK$="b" Then Gosub SEEBETS
  1893. Next A
  1894. If KK$="f" Then Gosub FZ
  1895. If KK$="b" Then Gosub SEEBETS
  1896. Bob Draw 
  1897. Wait Vbl 
  1898. If KK$="f" Then Gosub FZ
  1899. If KK$="b" Then Gosub SEEBETS
  1900. Loop 
  1901. '----------------------------- --------------------------- 
  1902. RACEOVER:
  1903. Sam Stop 
  1904. Amal Off : Move Off 
  1905. 'Screen Close 3
  1906. 'Screen Close 2
  1907. 'Screen Close 1
  1908. Wait Vbl 
  1909. Screen 0 : Colour 0,$14
  1910. 'Cls 0 
  1911. '
  1912. For A=1 To RNNERS : XB(A)=X Bob(A) : Next A
  1913. POSITIONS:
  1914. For A=1 To RNNERS : GONE(A)=1 : Next A : Rem For who has been scored  
  1915. For T=1 To RNNERS : Rem Find highest of non scored horses
  1916. PP=-1
  1917. For A=1 To RNNERS
  1918. If X Bob(A)>PP and GONE(A)=1 : PP=X Bob(A) : PPWHO=A : End If 
  1919. Next A
  1920. P(T)=PPWHO : Rem Record horse in positions array
  1921. GONE(PPWHO)=0 : Rem Score horse
  1922. Next T
  1923. '
  1924. POSITIONSTABLE:
  1925.  
  1926. 'get dist between each horse for photo purposes
  1927. For A=1 To RNNERS : X=P(A) : LTHS(A)=XB(X) : Next A
  1928. 'check for photo 
  1929. PHOTO=0
  1930. D1=LTHS(1)-LTHS(2) : D2=LTHS(2)-LTHS(3) : D3=LTHS(3)-LTHS(4)
  1931. If D1<=4 Then PHOTO=1 : P$="1st AND 2nd PLACES"
  1932. If D2<=4 Then PHOTO=1 : Q$="2nd AND 3rd PLACES"
  1933. If D3<=4 Then PHOTO=1 : R$="3rd AND 4th PLACES"
  1934. If PHOTO=1 Then Cls 0 : Curs Off : Locate 17,1 : Print "PHOTO FINISH" : Locate 14,3 : Print P$ : Locate 14,5 : Print Q$ : Locate 14,7 : Print R$ : Screen Swap : Wait Vbl : Wait Rnd(100)+75
  1935. Wait 50 : For A=1 To RNNERS : Bob Off(A) : Next A : Bob Clear 
  1936. 'Screen 2 : Colour 0,$123 : Cls 0 : Screen Hide  
  1937. 'Screen 1 : Colour 0,$123 : Cls 0 : Screen Hide  
  1938. Curs Off : Paper 0 : Pen 1 : Cls 0 : Locate 3,0
  1939. T$="RESULT OF RACE"+Str$(RACE)
  1940. A=Len(T$)
  1941. Text Screen Width/2-(A*8/2),10,T$
  1942. Locate 11,4 : Print "POS      HORSE         ODDS  "
  1943. 'INJURED=0 
  1944. 'If Rnd(1)=1 and TINJURIES<3 Then INJURED=1 : Inc TINJURIES : ZZ=RNNING(8) : INJURY(ZZ)=1 : Flash 3,"(fff,5)(222,5)" 
  1945. For A=1 To RNNERS
  1946. Locate 11,A+5 : Print POS$(A)
  1947. X=P(A) : Z$=HOR$(X) : HH$=Mid$(Z$,8,13)
  1948. Locate 15,5+A : Print P(A);"."+HH$;"  ";ODD(X);"/1"
  1949.  
  1950. IH$=HH$
  1951. L=Len(IH$)
  1952. For C=1 To Len(IH$)
  1953. If Right$(HH$,1)=" " Then I$=IS$+Mid$(IH$,1,L-1) : HH$=I$
  1954. Next C
  1955.  
  1956. 'If INJURED=1 and A=RNNERS 
  1957. 'Locate 18,19 : Pen 3 : Centre HH$ 
  1958. 'Locate 12,20 : Centre "INJURED DURING RACE" 
  1959. 'End If  
  1960. Next A
  1961.  
  1962. B=1
  1963. T$="PRESS A MOUSE KEY"
  1964. A=Len(T$)
  1965. Text Screen Width/2-(A*8/2),180,T$
  1966. 'inc jock wins 
  1967. For A=1 To 8
  1968. If P(1)=JJJ(A) Then D=JTEMP(A) : Inc JWINS(D)
  1969. JJJ(A)=0
  1970. Next A
  1971.  
  1972. 'inc jrides
  1973. For A=1 To 25
  1974. If JR(A)=1 Then JR(A)=0 : Inc JRIDE(A)
  1975. Next A
  1976.  
  1977.  
  1978. _FORMBOOK
  1979. _FORM
  1980. DEADCERT=0
  1981. BHBDC=0
  1982. DC=0
  1983. Screen Swap : Wait Vbl 
  1984. Wait 25
  1985. While Mouse Key=0 : Wend 
  1986. Flash Off : Fade 4 : Wait 60 : Cls 0 : Pen 1
  1987. Screen Close 1
  1988. Screen Close 2
  1989. Screen Close 3
  1990. Sam Loop Off 
  1991. _PAYOUT
  1992. Erase 3
  1993. Pop Proc
  1994.  
  1995. MOOV:
  1996. Inc X(A)
  1997. Move X A,"(1,1,2)" : Move On(A)
  1998. Return 
  1999. '
  2000. '
  2001. SEEBETS:
  2002. 'show bets in race   
  2003. Screen 1
  2004. Flash Off : Curs Off : Home : Paper 11 : Pen 0
  2005. NB=0
  2006. For A=1 To PLYRS
  2007. PTURN=A
  2008. _SBETS
  2009. XX$=""
  2010. VV$=Right$(PB$,3)
  2011. If PB3$<>"" Then XX$=" & "+Right$(PB3$,1)
  2012. WW$=Right$(PB2$,1)
  2013. Pen 0 : If A=1 and PBET(A)>0 Then B1$="P1 "+VV$+" "+WW$+XX$ : Locate 12,0 : Print B1$
  2014. Pen 14 : If A=2 and PBET(A)>0 Then B2$="P2 "+VV$+" "+WW$+XX$ : Locate 28,0 : Print B2$
  2015. Pen 5 : If A=3 and PBET(A)>0 Then B3$="P3 "+VV$+" "+WW$+XX$ : Locate 44,0 : Print B3$
  2016. Pen 6 : If A=4 and PBET(A)>0 Then B4$="P4 "+VV$+" "+WW$+XX$ : Locate 60,0 : Print B4$
  2017. If PBET(A)=0 Then Inc NB
  2018. Next A
  2019. If NB=PLYRS Then Pen 0 : Locate 8,0 : Print "NO BETS MADE"
  2020. Clear Key 
  2021. KK$=Inkey$
  2022. Return 
  2023. '  
  2024. 'freeze race 
  2025. FZ:
  2026. '======= 
  2027. Clear Key : Sam Stop 
  2028. Amal Freeze : Wait 40 : Wait Key 
  2029. Sam Play 1 : Amal On 
  2030. Clear Key : KK$=Inkey$
  2031. Return 
  2032. End Proc
  2033. '==========================================
  2034. 'pay out winnings on bets
  2035. Procedure _PAYOUT
  2036. Wait Vbl 
  2037. Pen 7
  2038. L=0
  2039. For A=1 To PLYRS
  2040. If HADLOAN(A)>0 Then L=1
  2041. Next A
  2042. SOMERUN=0
  2043. If P1HR=1 or P2HR=1 or P3HR=1 or P4HR=1 Then SOMERUN=1
  2044. W=20 : NOUT=0
  2045. If L=1 or SOMERUN=1
  2046. NOUT=1
  2047. Screen Open 0,640,255,8,Hires : Curs Off : Flash Off : Hide : Paper 0 : Cls 0
  2048. A$="CPU"
  2049. Home : Pen 1 : Inverse On : Locate 30,0 : Print "PRIZE MONEY" : Inverse Off 
  2050. Locate 18,3 : Pen 4 : Print "1st Place:" : Locate 18,5 : Pen 5 : Print "2nd Place:" : Locate 18,7 : Pen 6 : Print "3rd Place:"
  2051. Pen 2
  2052. Locate 30,3 : Print A$
  2053. Locate 30,5 : Print A$
  2054. Locate 30,7 : Print A$
  2055. End If 
  2056. If SOMERUN=1
  2057. Pen 3 : Locate 0,29 : Centre "PRESS A MOUSE KEY"
  2058. End If 
  2059. If P1HR<>1 Then Goto YZ
  2060. Pen 7 : A$="PLAYER 1 WINS ï¿½"
  2061. CHEST=W
  2062. For A=1 To 3
  2063. P=P(A)
  2064. STD=RNNING(P)
  2065. If OWN1(STD)=1 and A=1 Then Add PCASH(1),Int(PRIZEMONEY/2) : Locate 30,3 : Print A$+Str$(Int(PRIZEMONEY/2)) : Inc W
  2066. If OWN1(STD)=1 and A=2 Then Add PCASH(1),Int(PRIZEMONEY/3) : Locate 30,5 : Print A$+Str$(Int(PRIZEMONEY/3)) : Inc W
  2067. If OWN1(STD)=1 and A=3 Then Add PCASH(1),Int(PRIZEMONEY/5) : Locate 30,7 : Print A$+Str$(Int(PRIZEMONEY/5)) : Inc W
  2068. Next A
  2069. YZ:
  2070. If P2HR<>1 Then Goto YZ2
  2071. Pen 2 : A$="PLAYER 2 WINS ï¿½"
  2072. For A=1 To 3
  2073. P=P(A)
  2074. STD=RNNING(P)
  2075. If OWN2(STD)=1 and A=1 Then Add PCASH(2),Int(PRIZEMONEY/2) : Locate 30,3 : Print A$+Str$(Int(PRIZEMONEY/2)) : Inc W
  2076. If OWN2(STD)=1 and A=2 Then Add PCASH(2),Int(PRIZEMONEY/3) : Locate 30,5 : Print A$+Str$(Int(PRIZEMONEY/3)) : Inc W
  2077. If OWN2(STD)=1 and A=3 Then Add PCASH(2),Int(PRIZEMONEY/5) : Locate 30,7 : Print A$+Str$(Int(PRIZEMONEY/5)) : Inc W
  2078. Next A
  2079. YZ2:
  2080. If P3HR<>1 Then Goto YZ3
  2081. Pen 5 : A$="PLAYER 3 WINS ï¿½"
  2082. For A=1 To 3
  2083. P=P(A)
  2084. STD=RNNING(P)
  2085. If OWN3(STD)=1 and A=1 Then Add PCASH(3),Int(PRIZEMONEY/2) : Locate 30,3 : Print A$+Str$(Int(PRIZEMONEY/2)) : Inc W
  2086. If OWN3(STD)=1 and A=2 Then Add PCASH(3),Int(PRIZEMONEY/3) : Locate 30,5 : Print A$+Str$(Int(PRIZEMONEY/3)) : Inc W
  2087. If OWN3(STD)=1 and A=3 Then Add PCASH(3),Int(PRIZEMONEY/5) : Locate 30,7 : Print A$+Str$(Int(PRIZEMONEY/5)) : Inc W
  2088. Next A
  2089. YZ3:
  2090. If P4HR<>1 Then Goto YZ4
  2091. Pen 4 : A$="PLAYER 4 WINS ï¿½"
  2092. For A=1 To 3
  2093. P=P(A)
  2094. STD=RNNING(P)
  2095. If OWN4(STD)=1 and A=1 Then Add PCASH(4),Int(PRIZEMONEY/2) : Locate 30,3 : Print A$+Str$(Int(PRIZEMONEY/2)) : Inc W
  2096. If OWN4(STD)=1 and A=2 Then Add PCASH(4),Int(PRIZEMONEY/3) : Locate 30,5 : Print A$+Str$(Int(PRIZEMONEY/3)) : Inc W
  2097. If OWN4(STD)=1 and A=3 Then Add PCASH(4),Int(PRIZEMONEY/5) : Locate 30,7 : Print A$+Str$(Int(PRIZEMONEY/5)) : Inc W
  2098. Next A
  2099. YZ4:
  2100. 'Do LOAN REPAYMENTS
  2101. If L=1
  2102. Colour 3,$30
  2103. Ink 5,3
  2104. Box 50,160 To 610,205
  2105. For A=1 To PLYRS
  2106. Pen A : Locate 9,20+A : Print "PLAYER ";A;" LOAN REPAYMENT ï¿½";LR(A);"  TO PAY (Inc interest) ï¿½";HADLOAN(A)
  2107. '
  2108. If HADLOAN(A)>0 and PCASH(A)>0
  2109. Add PCASH(A),-LR(A) : Add HADLOAN(A),-LR(A)
  2110. End If 
  2111. Next A
  2112. End If 
  2113. If NOUT=0 Then Goto MAZ
  2114. While Mouse Key=0 : Wend 
  2115. 'pbet=1 if player 1 has laid a bet 
  2116. '
  2117. 'if no players had a bet then pop
  2118. MAZ:
  2119. For A=1 To PLYRS
  2120. If PBET(A)=1 Then PTURN=A : Gosub PPA
  2121. Next A
  2122. For A=1 To 4 : HB(A)=0 : SF1(A)=0 : SF2(A)=0 : BTYPE(PTURN)=0 : PSTAKE(PTURN)=0 : RF1(A)=0 : RF2(A)=0 : Next A
  2123. Pop Proc
  2124. PPA:
  2125. Unpack 10 To 0
  2126. _MOUSE
  2127. Paper 0 : Pen 12
  2128. PL$="PLAYER "+Str$(A)
  2129. Centre PL$
  2130. WINNINGS=0 : PLC=0
  2131. Paper 1 : Pen 2
  2132. If BTYPE(PTURN)=1 and PBET(PTURN)=1 Then BET$="�"+Str$(PSTAKE(PTURN))-" " : Locate 15,10 : Print BET$+" WIN" : ZZ$=HOR$(HB(PTURN)) : Z$=Mid$(ZZ$,8,13) : Locate 14,8 : Print Z$ : Locate 11,26 : Print BET$ : Goto QPXL
  2133. If BTYPE(PTURN)=2 and PBET(PTURN)=1
  2134. BET$="�"+Str$(PSTAKE(PTURN)/2)-" " : Locate 15,10 : Print BET$+" E/W" : ZZ$=HOR$(HB(PTURN)) : Z$=Mid$(ZZ$,8,13) : Locate 14,8 : Print Z$ : BET$="�"+Str$(PSTAKE(PTURN))-" " : Locate 11,26 : Print BET$ : Goto QPXL
  2135. End If 
  2136. If BTYPE(PTURN)=3 and PBET(PTURN)=1 Then BET$="�"+Str$(PSTAKE(PTURN))-" " : Locate 15,10 : Print BET$+" S/FC" : Locate 14,8 : Print SF1(PTURN);" X";SF2(PTURN) : BET$="�"+Str$(PSTAKE(PTURN))-" " : Locate 11,26 : Print BET$ : Goto QPXL
  2137. If BTYPE(PTURN)=4 and PBET(PTURN)=1 Then BET$="�"+Str$(PSTAKE(PTURN)/2)-" " : Locate 15,10 : Print BET$+" R/FC" : Locate 14,8 : Print RF1(PTURN);" X";RF2(PTURN) : BET$="� "+Str$(PSTAKE(PTURN))-"" : Locate 11,26 : Print BET$ : Goto QPXL
  2138. QPXL:
  2139. 'do win bet
  2140. If BTYPE(PTURN)=1 and HB(PTURN)=P(1)
  2141. 'Print "win "
  2142. T=P(1)
  2143. WINNINGS=PSTAKE(PTURN)*ODD(T)+PSTAKE(PTURN) : BET$="�"+Str$(WINNINGS)-" " : Locate 20,26 : Print BET$ : Add PCASH(PTURN),WINNINGS+PSTAKE(PTURN) : Wait 50 : Bob 1,110,60,17 : Bob Draw : Wait Vbl : Sam Play 2 : Goto CCL
  2144. End If 
  2145.  
  2146.  
  2147. 'do e/w bet
  2148. If BTYPE(PTURN)=2 and HB(PTURN)=P(1)
  2149. T=P(1)
  2150. WINNINGS=PSTAKE(PTURN)/2
  2151. WINNINGS=WINNINGS*ODD(T) : WINNINGS=WINNINGS+PSTAKE(PTURN)/2
  2152. 'Print "win=";WINNINGS 
  2153. PLC=ODD(T)/4 : Inc PLC
  2154. PLC=PLC*PSTAKE(PTURN)/2
  2155. QQQ=PSTAKE(PTURN)/2
  2156. PLC=PLC+QQQ
  2157. 'Print "plc=";PLC
  2158. WINNINGS=WINNINGS+PLC
  2159. BET$="�"+Str$(WINNINGS)-" " : Locate 20,26 : Print BET$
  2160. Add PCASH(PTURN),WINNINGS : Wait 50
  2161. Bob 1,110,60,17 : Bob Draw : Wait Vbl : Goto CCL
  2162. End If 
  2163.  
  2164. 'is it just 2nd with ew bet?   
  2165. If BTYPE(PTURN)=2 and HB(PTURN)=P(2)
  2166. 'Print "im here 2nd" 
  2167. T=P(2)
  2168. PLC=ODD(T)/4 : Inc PLC
  2169. PLC=PLC*PSTAKE(PTURN)/2
  2170. QQQ=PSTAKE(PTURN)/2
  2171. PLC=PLC+QQQ
  2172. 'Print "2ndplc=";PLC 
  2173. WINNINGS=PLC
  2174. BET$="�"+Str$(PLC)-" " : Locate 20,26
  2175. Print BET$ : Add PCASH(PTURN),WINNINGS : Wait 50
  2176. Bob 1,110,60,17 : Bob Draw : Wait Vbl : Sam Play 2 : Goto CCL
  2177. End If 
  2178.  
  2179. 'is it just 3rd with ew bet?   
  2180. If BTYPE(PTURN)=2 and HB(PTURN)=P(3)
  2181. 'Print "im here3rd"  
  2182. T=P(3)
  2183. PLC=ODD(T)/4 : Inc PLC
  2184. PLC=PLC*PSTAKE(PTURN)/2
  2185. QQQ=PSTAKE(PTURN)/2
  2186. PLC=PLC+QQQ
  2187. 'Print "3rdplc=";PLC 
  2188. WINNINGS=PLC
  2189. BET$="�"+Str$(WINNINGS)-" " : Locate 20,26
  2190. Print BET$ : Add PCASH(PTURN),WINNINGS : Wait 50
  2191. Bob 1,110,60,17 : Bob Draw : Wait Vbl : Sam Play 2 : Goto CCL
  2192. End If 
  2193.  
  2194. 'do sfc
  2195. If BTYPE(PTURN)=3 and SF1(PTURN)=P(1) and(SF2(PTURN)=P(2))
  2196. T=P(1) : TT=P(2)
  2197. WINNINGS=ODD(T)*ODD(TT)
  2198. WINNINGS=WINNINGS*PSTAKE(PTURN)
  2199. If WINNINGS<=PSTAKE(PTURN)
  2200. WINNINGS=WINNINGS+PSTAKE(PTURN)
  2201. End If 
  2202. BET$="�"+Str$(WINNINGS)-" " : Locate 20,26
  2203. Print BET$ : Add PCASH(PTURN),WINNINGS : Wait 50
  2204. Bob 1,110,60,17 : Bob Draw : Wait Vbl : Sam Play 2 : Goto CCL
  2205. End If 
  2206.  
  2207. 'do rfc
  2208. GOTFC=0
  2209. T=P(1) : TT=P(2)
  2210. If BTYPE(PTURN)=4 and P(1)=RF1(PTURN) and P(2)=RF2(PTURN) Then GOTFC=1
  2211. If BTYPE(PTURN)=4 and P(1)=RF2(PTURN) and P(2)=RF1(PTURN) Then GOTFC=1
  2212. If GOTFC=1
  2213. WINNINGS=ODD(T)*ODD(TT)
  2214. WINNINGS=WINNINGS*PSTAKE(PTURN) : WINNINGS=WINNINGS/2
  2215. If WINNINGS<=PSTAKE(PTURN)
  2216. WINNINGS=WINNINGS+PSTAKE(PTURN)
  2217. End If 
  2218. BET$="�"+Str$(WINNINGS)-" " : Locate 20,26
  2219. Print BET$ : Add PCASH(PTURN),WINNINGS : Wait 50
  2220. Bob 1,110,60,17 : Bob Draw : Wait Vbl : Sam Play 2 : Goto CCL
  2221. End If 
  2222.  
  2223. BBL:
  2224. Locate 20,26 : Print "�0"
  2225. Wait 50 : Bob 1,110,90,18 : Bob Draw : Sam Play 2 : Wait Vbl 
  2226. CCL:
  2227. While Mouse Key=0 : Wend 
  2228. GOTFC=0
  2229. Return 
  2230. End Proc
  2231. '==========================================
  2232. 'update and store form 
  2233. Procedure _FORMBOOK
  2234. Inc RACENUMBER
  2235.  
  2236. For R=1 To RNNERS
  2237. W=RNNING(R)
  2238. If MM(W)>25 Then Pop Proc
  2239. Inc MM(W) : F=W
  2240. G:
  2241. 'x=finishing position in race
  2242. For A=1 To RNNERS
  2243. If P(A)=R Then X=A
  2244. Next A : Gosub STX
  2245. W$=Mid$(H$(W),38,4) : MM=MM(W)
  2246. D=DIST(DI)
  2247. If D<10 Then D$="0"+Str$(D)-" "
  2248. If D>=10 Then D$=Str$(D)-" "
  2249. If RACENUMBER>9 Then FOM$(F,MM)="RACE No."+Str$(RACENUMBER)+":"+M$+":"+D$+"F: "+GG$
  2250. If RACENUMBER<10 Then FOM$(F,MM)="RACE No."+Str$(RACENUMBER)+" :"+M$+":"+D$+"F: "+GG$
  2251. FOM$(F,MM)=FOM$(F,MM)+": DRAW "+Left$(POS$(R),1)+" : "+W$+" :"+Str$(ODD(R))+"/1"
  2252. FOM$(F,MM)=FOM$(F,MM)+": "+JA$+" OF"+Str$(RNNERS)+": "+J$(R)
  2253. Next R
  2254. Pop Proc
  2255. STX:
  2256. If X=1 Then JA$="1st"
  2257. If X=2 Then JA$="2nd"
  2258. If X=3 Then JA$="3rd"
  2259. If X=4 Then JA$="4th"
  2260. If X=5 Then JA$="5th"
  2261. If X=6 Then JA$="6th"
  2262. If X=7 Then JA$="7th"
  2263. If X=8 Then JA$="8th"
  2264. Return 
  2265. End Proc
  2266. '==========================================
  2267. 'show previous races.max 15  
  2268. Procedure _BOOK
  2269. 'Limit Mouse 
  2270. Pen 12 : Paper 0 : Locate 0,23 : Centre "CLICK ON NAME OF HORSE TO VIEW" : Flash 12,"(2a4,10)(f16,10)"
  2271. Reserve Zone 
  2272. Reserve Zone 8
  2273. Set Zone 1,44,62 To 562,71
  2274. Set Zone 2,44,78 To 562,87
  2275. Set Zone 3,44,92 To 562,103
  2276. Set Zone 4,44,111 To 562,119
  2277. Set Zone 5,44,125 To 562,135
  2278. Set Zone 6,44,142 To 562,150
  2279. Set Zone 7,44,157 To 562,167
  2280. Set Zone 8,44,174 To 562,183
  2281. Do 
  2282. RAYMONDO:
  2283. K=Mouse Zone
  2284. While Mouse Key=0 : Wend 
  2285. If K>RNNERS or K=0 Then Goto RAYMONDO
  2286. Gosub GREG
  2287. Loop 
  2288. GREG:
  2289. Flash Off 
  2290. Hide : Cls 0
  2291. 'Unpack 2 To 0 
  2292. _MOUSE
  2293. J=RNNING(K)
  2294. If MM(J)=0 Then Text Screen Width/2-(20*8/2),99,"NO RUNS THIS SEASON" : While Mouse Key=0 : Wend : Cls 0 : Pop Proc
  2295. A$=HOR$(K)
  2296. B$=Left$(A$,20)
  2297. BB$=Mid$(A$,38,4)
  2298. OO$=Right$(A$,4)
  2299. D=DIST(DI)
  2300. D$=Str$(D)-" "
  2301. Ink 7,4 : NOW$=B$+" "+M$+" "+D$+" F "+GG$+" "+V$+" "+BB$+" "+OO$+" "+J$(K) : LA=Len(NOW$) : Text Screen Width/2-(LA*8/2),8,NOW$ : Inverse Off 
  2302. HH=19
  2303. Ink 1,2
  2304. For A=1 To 25 : 
  2305. AX=Len(FOM$(J,A))
  2306. Text 12,HH,FOM$(J,A) : Add HH,16 : Next A
  2307. While Mouse Key=0 : Wend 
  2308. Cls 0
  2309. End Proc
  2310. '==========================================
  2311. 'inc meeting 
  2312. Procedure _MEET
  2313. 'Screen Open 0,320,250,8,Lowres
  2314. 'Curs Off : Flash Off : Hide On : Cls 0
  2315. Load Iff "punter_files/new.iff",0
  2316. Paper 7 : Pen 0 : M$=MEETING$(MEET)
  2317. Locate 26,12 : Print "NEXT MEETING: "+M$
  2318. 'Ink 5,3 : Box 0,35 To 319,90
  2319. 'Pen 4 
  2320. 'Colour 1,$339 : Colour 2,$612 : Colour 3,$30 : Colour 4,$656
  2321. Pen 3
  2322. For A=1 To PLYRS
  2323. Locate 26,A+13 : Print "PLAYER"+Str$(A)+" CASH: ï¿½"+Str$(PCASH(A))-" "
  2324. Next A
  2325. While Mouse Key=0 : Wend 
  2326. End Proc
  2327. '==========================================
  2328. Procedure _NEWSEASON
  2329. Cls 0
  2330. Load Iff "punter_files/new.iff",0
  2331. Paper 7 : Pen 0
  2332. Locate 26,12 : Print "S E A S O N "+Str$(SEASON)
  2333. GIVEN=0 : Rem reset deadcert chance
  2334. If GAMETYPE=4 and SEASON>=11 Then Goto GOV
  2335. While Mouse Key=0 : Wend 
  2336. Pop Proc
  2337. GOV:
  2338. JUSTCHECKING=1 : _SELL
  2339. Locate 26,12 : Centre "G A M E  O V E R"
  2340.  
  2341. 'this is for gametype 4
  2342. P1TOT=PCASH(1)+P1STOCK
  2343. P2TOT=PCASH(2)+P2STOCK
  2344. P3TOT=PCASH(3)+P3STOCK
  2345. P4TOT=PCASH(4)+P4STOCK
  2346. If P1TOT>P2TOT and P1TOT>P3TOT and(P1TOT>P4TOT) Then WINNER=1
  2347. If P2TOT>P1TOT and P2TOT>P3TOT and(P2TOT>P4TOT) Then WINNER=2
  2348. If P3TOT>P1TOT and P3TOT>P2TOT and(P3TOT>P4TOT) Then WINNER=3
  2349. If P4TOT>P1TOT and P4TOT>P2TOT and(P4TOT>P3TOT) Then WINNER=4
  2350. DDL:
  2351. 'draw
  2352. If P1TOT=P2TOT Then D1=1 : D2=2
  2353. If P1TOT=P3TOT Then D1=1 : D2=3
  2354. If P1TOT=P4TOT Then D1=1 : D2=4
  2355.  
  2356. If P2TOT=P3TOT Then D1=2 : D2=3
  2357. If P2TOT=P4TOT Then D1=2 : D2=4
  2358. If P3TOT=P4TOT Then D1=3 : D2=4
  2359. 'the winning screen
  2360. If WINNER=0 Then Locate 26,14 : Print "IT'S A DRAW"
  2361. If WINNER>0 Then Locate 26,14 : Print "THE WINNER IS PLAYER "+Str$(WINNER)-" "
  2362. Locate 26,15 : Under On : Print "TOTAL CASH AND STOCK VALUE" : Under Off 
  2363. Locate 26,16 : Print "PLAYER 1: ï¿½";P1TOT
  2364. Locate 26,27 : Print "PLAYER 2: ï¿½";P2TOT
  2365. If PLYRS>=3 Then Locate 26,18 : Print "PLAYER 3: ï¿½";P3TOT
  2366. If PLYRS>=4 Then Locate 26,19 : Print "PLAYER 4: ï¿½";P4TOT
  2367. Wait 100
  2368. While Mouse Key=0 : Wend 
  2369. QUIT=1
  2370. Pop Proc
  2371. End Proc
  2372. '==========================================
  2373. Procedure _JOCKEYS
  2374. FRAS:
  2375. Limit Mouse 
  2376. Screen Open 0,640,255,8,Hires
  2377. Flash Off : Curs Off : Paper 0 : Cls 0 : Show On 
  2378. _MOUSE
  2379. Colour 6,$FF0
  2380. Colour 1,$77
  2381. Reserve Zone 26
  2382. Pen 2 : Print : Print "    JOCKEY INFO          RIDES    WINS   RACE     SEASON      STATUS"
  2383. Draw 0,18 To 640,18
  2384. Pen 7
  2385. For A=1 To 9
  2386. Gosub FEE
  2387. J$=JOCK$(A) : Pen 1 : Locate 0,A+2 : Print Zone$(J$,A)
  2388. Locate 26,A+2 : Print JRIDE(A) : Locate 34,A+2 : Print JWINS(A) : Locate 41,A+2 : Print "�";CR : Locate 50,A+2 : Print "�";SR
  2389. Gosub APA
  2390. Next A
  2391. For A=10 To 25
  2392. Gosub FEE
  2393. Pen 1 : J$=JOCK$(A) : Locate 0,A+2 : Print Zone$(J$,A)
  2394. Locate 26,A+2 : Print JRIDE(A)
  2395. Locate 34,A+2 : Print JWINS(A)
  2396. Locate 41,A+2 : Print "�";CR
  2397. Locate 50,A+2 : Print "�";SR
  2398. Gosub APA
  2399. Pen 7
  2400. Next A
  2401. Flash 3,"(fff,5)(222,5)"
  2402. Locate 74,1 : Pen 3 : Print Zone$("EXIT",26)
  2403. 'Draw 150,20 To 150,240
  2404. Draw 185,20 To 185,230
  2405. Draw 255,20 To 255,230
  2406. Draw 315,20 To 315,230
  2407. Draw 385,20 To 385,230
  2408. Draw 480,20 To 480,230
  2409. Draw 0,230 To 640,230
  2410. Pen 6
  2411. GGL:
  2412. Clear Key 
  2413. Do 
  2414. TT:
  2415. Locate 0,29 : Print "CLICK ON A JOCKEYS NAME TO SELECT     "
  2416. K=0
  2417. While Mouse Key=0 : Wend 
  2418. K=Mouse Zone
  2419. If K=26 Then Pop Proc
  2420. If K>0 and K<26 and(JR(K)=0) Then Locate 0,29 : Print "HIRE FOR  RACE - SEASON OR CANCEL  PRESS  R S OR C      " : Goto HIRE
  2421. If K>0 and K<26 and(JR(K)=1) or(JR(K)=2) Then Locate 0,29 : Print "ALREADY RIDING IN THIS RACE        " : Wait 100 : Locate 0,29 : Print Space$(79) : Goto TT
  2422. Loop 
  2423. Pop Proc
  2424. HIRE:
  2425. A$=""
  2426. K$="" : While K$="" : K$=Inkey$ : Wend 
  2427. K$=Upper$(K$)
  2428. A=K : Gosub FEE
  2429. If RETAINER(PTURN)>0 Then A$="YOU CAN ONLY USE YOUR RETAINER!                         " : Goto RAL
  2430. If PCASH(PTURN)<CR Then Locate 0,29 : Print "YOU CAN'T AFFORD IT!                                    " : Wait 100 : Locate 0,29 : Print Space$(79) : Goto GGL
  2431. If K$="R" and PTURN=1 and(P1GJ=1) Then Gosub GJ : Goto GGL
  2432. If K$="R" and PTURN=2 and(P2GJ=1) Then Gosub GJ : Goto GGL
  2433. If K$="R" and PTURN=3 and(P3GJ=1) Then Gosub GJ : Goto GGL
  2434. If K$="R" and PTURN=4 and(P4GJ=1) Then Gosub GJ : Goto GGL
  2435. If K$="R" and PTURN=1 and(P1HR=0) Then Gosub PRW : Goto GGL
  2436. If K$="R" and PTURN=2 and(P2HR=0) Then Gosub PRW : Goto GGL
  2437. If K$="R" and PTURN=3 and(P3HR=0) Then Gosub PRW : Goto GGL
  2438. If K$="R" and PTURN=4 and(P4HR=0) Then Gosub PRW : Goto GGL
  2439. If K$="R" Then A$="HIRED FOR RACE" : JR(K)=1 : Gosub INJ
  2440. If K$="S" and PCASH(PTURN)<SR Then Locate 0,29 : Print "YOU CAN'T AFFORD IT!                                        " : Wait 100 : Locate 0,29 : Print Space$(79) : Goto GGL
  2441. If K$="S" Then A$="HIRED FOR SEASON" : JR(K)=2 : Gosub RT
  2442. If K$="C" Then A$=""
  2443. Locate 0,29 : Print Space$(79)
  2444. If A$="" Then Goto GGL
  2445. RAL:
  2446. Locate 0,29 : Print A$ : Wait 150 : Goto FRAS
  2447. Goto GGL
  2448. GJ:
  2449. Locate 0,29 : Print "NO MORE JOCKEYS INTERESTED                         " : Wait 50 : Goto FRAS
  2450. Return 
  2451.  
  2452. RT:
  2453. If PTURN=1 and RETAINER(1)=0 Then RETAINER(1)=K : Add PCASH(1),-SR : Return 
  2454. If PTURN=1 and RETAINER(1)>0 Then Gosub GREEDY
  2455. If PTURN=2 and RETAINER(2)=0 Then RETAINER(2)=K : Add PCASH(2),-SR : Return 
  2456. If PTURN=2 and RETAINER(2)>0 Then Gosub GREEDY
  2457. If PTURN=3 and RETAINER(3)=0 Then RETAINER(3)=K : Add PCASH(3),-SR : Return 
  2458. If PTURN=3 and RETAINER(3)>0 Then Gosub GREEDY
  2459. If PTURN=4 and RETAINER(4)=0 Then RETAINER(4)=K : Add PCASH(4),-SR : Return 
  2460. If PTURN=4 and RETAINER(4)>0 Then Gosub GREEDY
  2461. Return 
  2462. GREEDY:
  2463. Locate 0,29 : Print "ONLY ONE RETAINER A SEASON ALLOWED!                         " : A$="" : Wait 100 : Return 
  2464. FEE:
  2465. CR=50*JWINS(A) : FFP=JRIDE(A) : CR=CR-FFP*5 : If CR<50 Then CR=50
  2466. SR=CR*400
  2467. Return 
  2468. PRW:
  2469. Locate 0,29 : Print "YOU DON'T HAVE A RUNNER IN THE NEXT RACE!            "
  2470. Wait 100 : Locate 0,29 : Print Space$(79)
  2471. Return 
  2472.  
  2473. INJ:
  2474. 'insert jockey 
  2475. 'find
  2476. For A=1 To RNNERS
  2477. GG=RNNING(A)
  2478. If PTURN=1 and P1RP=A Then HOR=A : Add PCASH(1),-CR : P1GJ=1
  2479. If PTURN=2 and P2RP=A Then HOR=A : Add PCASH(2),-CR : P2GJ=1
  2480. If PTURN=3 and P3RP=A Then HOR=A : Add PCASH(3),-CR : P3GJ=1
  2481. If PTURN=4 and P4RP=A Then HOR=A : Add PCASH(4),-CR : P4GJ=1
  2482. Next A
  2483.  
  2484. 'look at orig jock 
  2485. U$=HOR$(HOR)
  2486. O$=Mid$(U$,46,52)
  2487. For A=1 To 25
  2488. F=Instr(O$,JOCK$(A))
  2489. If F<>0 Then OG=A
  2490. Next A
  2491. JR(OG)=0
  2492.  
  2493. 'insert
  2494. T$=HOR$(HOR)
  2495. Mid$(T$,46,57)=JOCK$(K)
  2496. HOR$(HOR)=T$
  2497. JR(K)=1
  2498. Return 
  2499.  
  2500.  
  2501. APA:
  2502. If JR(A)=1 Then Pen 4 : Locate 62,A+2 : Print "UNAVAILABLE"
  2503. If RETAINER(1)=A Then Pen 6 : Locate 62,A+2 : Print "RETAINED BY P1" : Return 
  2504. If RETAINER(2)=A Then Pen 6 : Locate 62,A+2 : Print "RETAINED BY P2" : Return 
  2505. If RETAINER(3)=A Then Pen 6 : Locate 62,A+2 : Print "RETAINED BY P3" : Return 
  2506. If RETAINER(4)=A Then Pen 6 : Locate 62,A+2 : Print "RETAINED BY P4" : Return 
  2507. If JR(A)=0 Then Pen 5 : Locate 62,A+2 : Print "AVAILABLE"
  2508. Return 
  2509. End Proc
  2510. '==========================================
  2511. 'replace jock with retained jock if applic 
  2512. Procedure _USERETAINER
  2513. 'If PTURN=1
  2514. KK=RETAINER(1)
  2515. If KK=0 Then Goto XQP
  2516. TT$=HOR$(P1RP)
  2517. Mid$(TT$,46,57)=JOCK$(KK)
  2518. HOR$(P1RP)=TT$
  2519. 'End If  
  2520.  
  2521. XQP:
  2522. 'If PTURN=2
  2523. KK=RETAINER(2)
  2524. If KK=0 Then Goto CZ
  2525. TT$=HOR$(P2RP)
  2526. Mid$(TT$,46,57)=JOCK$(KK)
  2527. HOR$(P2RP)=TT$
  2528. 'End If  
  2529. CZ:
  2530. 'If PTURN=3
  2531. KK=RETAINER(3)
  2532. If KK=0 Then Goto RAR
  2533. TT$=HOR$(P3RP)
  2534. Mid$(TT$,46,57)=JOCK$(KK)
  2535. HOR$(P3RP)=TT$
  2536. 'End If  
  2537.  
  2538. RAR:
  2539. 'If PTURN=4
  2540. KK=RETAINER(4)
  2541. If KK=0 Then Pop Proc
  2542. TT$=HOR$(P4RP)
  2543. Mid$(TT$,46,57)=JOCK$(KK)
  2544. HOR$(P4RP)=TT$
  2545. 'End If  
  2546.  
  2547. End Proc
  2548. '==========================================
  2549. 'change mouse pointer colours  
  2550. Procedure _MOUSE
  2551. Colour 17,$30
  2552. Colour 18,$30
  2553. Colour 19,$0
  2554. End Proc
  2555. '==========================================
  2556. 'save current game variables 
  2557. Procedure _SAVE
  2558. Screen Hide 0
  2559. Load "punter_files/saving.abk",3
  2560. Screen Open 4,320,256,4,Lowres : Flash Off : Curs Off : Cls 0
  2561. Unpack 3 To 4
  2562. Paper 0 : Pen 1
  2563. 'Centre "PLEASE MAKE SURE PUNTER DISK IS IN DF0:"
  2564. Locate 0,24 : Centre "CLICK MOUSE TO SAVE OR SPACE TO CANCEL"
  2565. Do 
  2566. M=Mouse Key
  2567. If M=1 Then Goto SA
  2568. If Inkey$<>"" Then Screen Close 4 : Pop Proc
  2569. Loop 
  2570. SA:
  2571. Locate 0,24 : Cline 
  2572. Home : Cline 
  2573. Dir$=_DIR$
  2574. F$=Fsel$("","","TYPE FILENAME & PRESS RETURN")
  2575. If F$="" Then Screen Close 4 : Pop Proc
  2576. Paper 0 : Pen 4
  2577. Open Out 1,F$
  2578. P=2683
  2579. For A=1 To 4
  2580. Print #1,BTYPE(A)
  2581. Print #1,RETAINER(A)
  2582. Print #1,HADLOAN(A)
  2583. Print #1,LR(A)
  2584. Print #1,SF1(A)
  2585. Print #1,SF2(A)
  2586. Print #1,RF1(A)
  2587. Print #1,RF2(A)
  2588. Print #1,HB(A)
  2589. Print #1,BUP(A)
  2590. Print #1,PCASH(A)
  2591. Print #1,PBET(A)
  2592. Print #1,PSTAKE(A)
  2593. Dec P : Locate 17,21 : Print P;" "
  2594. Next A
  2595. For A=1 To 8
  2596. Print #1,J$(A)
  2597. Print #1,POS$(A)
  2598. Print #1,RATING(A)
  2599. Print #1,BESTCOURSE(A)
  2600. Print #1,BESTDIST(A)
  2601. Print #1,BESTGOING(A)
  2602. Print #1,ODD(A)
  2603. Print #1,HOR$(A)
  2604. Print #1,DIST(A)
  2605. Print #1,RNNING(A)
  2606. Print #1,P(A)
  2607. Print #1,PTS(A)
  2608. Print #1,IRO(A)
  2609. Print #1,XB(A)
  2610. Print #1,LTHS(A)
  2611. Dec P : Locate 17,21 : Print P;" "
  2612. Next A
  2613. For B=1 To 25
  2614. For A=1 To 100
  2615. Print #1,FOM$(A,B)
  2616. Dec P : Locate 17,21 : Print P;" "
  2617. Next A
  2618. Next B
  2619. For A=1 To 100
  2620. Print #1,RNS(A)
  2621. Print #1,OWN1(A)
  2622. Print #1,OWN2(A)
  2623. Print #1,OWN3(A)
  2624. Print #1,OWN4(A)
  2625. Print #1,MM(A)
  2626. Print #1,RATMET(A)
  2627. Print #1,PM(A)
  2628. Print #1,WINS(A)
  2629. Print #1,HORSE$(A)
  2630. Print #1,H$(A)
  2631. Print #1,AGE(A)
  2632. Print #1,HCHAR$(A)
  2633. Print #1,FFIG$(A)
  2634. Print #1,WEIGHT$(A)
  2635. Dec P : Locate 17,21 : Print P;" "
  2636. Next A
  2637. For A=1 To 25
  2638. Print #1,JTEMP(A)
  2639. Print #1,JOCK$(A)
  2640. Print #1,JR(A)
  2641. Print #1,JRIDE(A)
  2642. Print #1,JWINS(A)
  2643. Print #1,JJJ(A)
  2644. Print #1,HLIST(A)
  2645. Print #1,VU(A)
  2646. Print #1,TRAINER$(A)
  2647. Dec P : Locate 17,21 : Print P;" "
  2648. Next A
  2649. For A=1 To 15
  2650. Print #1,DRW$(A)
  2651. Print #1,MEETING$(A)
  2652. Dec P : Locate 17,21 : Print P;" "
  2653. Next A
  2654. For A=1 To 5
  2655. Print #1,GOING$(A)
  2656. Next A
  2657. For A=1 To 6
  2658. Print #1,Z$(A)
  2659. Next A
  2660. For A=1 To 27
  2661. Print #1,SLIST(A)
  2662. Dec P : Locate 17,21 : Print P;" "
  2663. Next A
  2664. Print #1,M$
  2665. Print #1,GG$
  2666. Print #1,DIFF
  2667. Print #1,RNNERS
  2668. Print #1,DAW$
  2669. Print #1,WINPART
  2670. Print #1,PLPART
  2671. Print #1,RACE
  2672. Print #1,D$
  2673. Dec P : Locate 17,21 : Print P;" "
  2674. Print #1,GO
  2675. Print #1,MEET
  2676. Print #1,GOING
  2677. Print #1,PRIZEMONEY
  2678. Print #1,PTURN
  2679. Print #1,PLYRS
  2680. Print #1,PB$
  2681. Print #1,PB2$
  2682. Print #1,PB3$
  2683. Print #1,HCOUNT
  2684. Print #1,FIRSTLOOK
  2685. Print #1,HORSESFORSALE
  2686. Print #1,HFS
  2687. Dec P : Locate 17,21 : Print P;" "
  2688. Print #1,P1OWNS
  2689. Print #1,P2OWNS
  2690. Print #1,P3OWNS
  2691. Print #1,P4OWNS
  2692. Print #1,P1HR
  2693. Print #1,P2HR
  2694. Print #1,P3HR
  2695. Print #1,P4HR
  2696. Print #1,FCOUNT
  2697. Print #1,DI
  2698. Print #1,P1RP
  2699. Print #1,P2RP
  2700. Print #1,P3RP
  2701. Dec P : Locate 17,21 : Print P;" "
  2702. Print #1,P4RP
  2703. Print #1,P1GJ
  2704. Print #1,P2GJ
  2705. Print #1,P3GJ
  2706. Print #1,P4GJ
  2707. Print #1,GAMETYPE
  2708. Print #1,WINNER
  2709. Print #1,P1STOCK
  2710. Print #1,P2STOCK
  2711. Print #1,P3STOCK
  2712. Print #1,P4STOCK
  2713. Print #1,JUSTCHECKING
  2714. Print #1,P1DEAD
  2715. Print #1,P2DEAD
  2716. Print #1,P3DEAD
  2717. Print #1,P4DEAD
  2718. Print #1,M1
  2719. Print #1,M2
  2720. Print #1,M3
  2721. Print #1,M4
  2722. Print #1,REALPLAYERS
  2723. Print #1,SEASON
  2724. Print #1,QUIT
  2725. Print #1,FCOUNT
  2726. Print #1,MEN
  2727. Print #1,HORSESFORSALE
  2728. Print #1,MEET
  2729. Print #1,RACE
  2730. Print #1,RACENUMBER
  2731. Dec P : Locate 17,21 : Print P;" "
  2732. Erase 3
  2733. Fade 20
  2734. Wait 50
  2735. Screen Close 4
  2736. Close 1
  2737. Screen Show 0
  2738. 'Dir$=OLDIR$ 
  2739. End Proc
  2740. '=========================================== 
  2741. 'load saved game 
  2742. Procedure _LOAD
  2743. Cls 0 : Screen Hide 0
  2744. Load "punter_files/loading.abk",3
  2745. Screen Open 4,320,256,4,Lowres : Flash Off : Curs Off : Cls 0
  2746. Unpack 3 To 4
  2747. Paper 0 : Pen 1
  2748. '
  2749. 'If Not Exist("punter_files/PUNTER_SAVED_GAME")
  2750. '   Cls 0 : Home : Centre "NO SAVED GAME PRESENT"
  2751. '   While Mouse Key=0 : Wend : Cls 0 : Pop Proc
  2752. 'End If  
  2753. '  
  2754. 'Centre "PLEASE MAKE SURE PUNTER DISK IS IN DF0:"
  2755. Locate 0,24 : Centre "CLICK MOUSE TO LOAD OR SPACE TO CANCEL"
  2756. Do 
  2757. M=Mouse Key
  2758. If M=1 Then Goto LA
  2759. If Inkey$<>"" Then Screen Close 4 : Pop Proc
  2760. Loop 
  2761. LA:
  2762. Locate 0,24 : Cline 
  2763. Home : Cline 
  2764. 'OLDIR$=Dir$ 
  2765. Dir$=_DIR$
  2766. F$=Fsel$("","","SELECT GAME OR QUIT")
  2767. If F$="" Then Screen Close 4 : Pop Proc
  2768. P=2683
  2769. Open In 1,F$
  2770. For A=1 To 4
  2771. Input #1,BTYPE(A)
  2772. Input #1,RETAINER(A)
  2773. Input #1,HADLOAN(A)
  2774. Input #1,LR(A)
  2775. Input #1,SF1(A)
  2776. Input #1,SF2(A)
  2777. Input #1,RF1(A)
  2778. Input #1,RF2(A)
  2779. Input #1,HB(A)
  2780. Input #1,BUP(A)
  2781. Input #1,PCASH(A)
  2782. Input #1,PBET(A)
  2783. Input #1,PSTAKE(A)
  2784. Dec P : Locate 17,21 : Print P;" "
  2785. Next A
  2786. For A=1 To 8
  2787. Input #1,J$(A)
  2788. Input #1,POS$(A)
  2789. Input #1,RATING(A)
  2790. Input #1,BESTCOURSE(A)
  2791. Input #1,BESTDIST(A)
  2792. Input #1,BESTGOING(A)
  2793. Input #1,ODD(A)
  2794. Input #1,HOR$(A)
  2795. Input #1,DIST(A)
  2796. Input #1,RNNING(A)
  2797. Input #1,P(A)
  2798. Input #1,PTS(A)
  2799. Input #1,IRO(A)
  2800. Input #1,XB(A)
  2801. Input #1,LTHS(A)
  2802. Dec P : Locate 17,21 : Print P;" "
  2803. Next A
  2804. For B=1 To 25
  2805. For A=1 To 100
  2806. Input #1,FOM$(A,B)
  2807. Dec P : Locate 17,21 : Print P;" "
  2808. Next A
  2809. Next B
  2810. For A=1 To 100
  2811. Input #1,RNS(A)
  2812. Input #1,OWN1(A)
  2813. Input #1,OWN2(A)
  2814. Input #1,OWN3(A)
  2815. Input #1,OWN4(A)
  2816. Input #1,MM(A)
  2817. Input #1,RATMET(A)
  2818. Input #1,PM(A)
  2819. Input #1,WINS(A)
  2820. Input #1,HORSE$(A)
  2821. Input #1,H$(A)
  2822. Input #1,AGE(A)
  2823. Input #1,HCHAR$(A)
  2824. Input #1,FFIG$(A)
  2825. Input #1,WEIGHT$(A)
  2826. Dec P : Locate 17,21 : Print P;" "
  2827. Next A
  2828. For A=1 To 25
  2829. Input #1,JTEMP(A)
  2830. Input #1,JOCK$(A)
  2831. Input #1,JR(A)
  2832. Input #1,JRIDE(A)
  2833. Input #1,JWINS(A)
  2834. Input #1,JJJ(A)
  2835. Input #1,HLIST(A)
  2836. Input #1,VU(A)
  2837. Input #1,TRAINER$(A)
  2838. Dec P : Locate 17,21 : Print P;" "
  2839. Next A
  2840. For A=1 To 15
  2841. Input #1,DRW$(A)
  2842. Input #1,MEETING$(A)
  2843. Dec P : Locate 17,21 : Print P;" "
  2844. Next A
  2845. For A=1 To 5
  2846. Input #1,GOING$(A)
  2847. Next A
  2848. For A=1 To 6
  2849. Input #1,Z$(A)
  2850. Next A
  2851. For A=1 To 27
  2852. Input #1,SLIST(A)
  2853. Dec P : Locate 17,21 : Print P;" "
  2854. Next A
  2855. Input #1,M$
  2856. Input #1,GG$
  2857. Input #1,DIFF
  2858. Input #1,RNNERS
  2859. Input #1,DAW$
  2860. Input #1,WINPART
  2861. Input #1,PLPART
  2862. Input #1,RACE
  2863. Input #1,D$
  2864. Input #1,GO
  2865. Input #1,MEET
  2866. Input #1,GOING
  2867. Input #1,PRIZEMONEY
  2868. Input #1,PTURN
  2869. Input #1,PLYRS
  2870. Input #1,PB$
  2871. Input #1,PB2$
  2872. Input #1,PB3$
  2873. Input #1,HCOUNT
  2874. Input #1,FIRSTLOOK
  2875. Input #1,HORSESFORSALE
  2876. Input #1,HFS
  2877. Input #1,P1OWNS
  2878. Input #1,P2OWNS
  2879. Input #1,P3OWNS
  2880. Dec P : Locate 17,21 : Print P;" "
  2881. Input #1,P4OWNS
  2882. Input #1,P1HR
  2883. Input #1,P2HR
  2884. Input #1,P3HR
  2885. Input #1,P4HR
  2886. Input #1,FCOUNT
  2887. Input #1,DI
  2888. Input #1,P1RP
  2889. Input #1,P2RP
  2890. Input #1,P3RP
  2891. Input #1,P4RP
  2892. Input #1,P1GJ
  2893. Input #1,P2GJ
  2894. Input #1,P3GJ
  2895. Input #1,P4GJ
  2896. Input #1,GAMETYPE
  2897. Input #1,WINNER
  2898. Input #1,P1STOCK
  2899. Input #1,P2STOCK
  2900. Input #1,P3STOCK
  2901. Dec P : Locate 17,21 : Print P;" "
  2902. Input #1,P4STOCK
  2903. Input #1,JUSTCHECKING
  2904. Input #1,P1DEAD
  2905. Input #1,P2DEAD
  2906. Input #1,P3DEAD
  2907. Input #1,P4DEAD
  2908. Input #1,M1
  2909. Input #1,M2
  2910. Input #1,M3
  2911. Input #1,M4
  2912. Input #1,REALPLAYERS
  2913. Dec P : Locate 17,21 : Print P;" "
  2914. Input #1,SEASON
  2915. Input #1,QUIT
  2916. Input #1,FCOUNT
  2917. Input #1,MEN
  2918. Input #1,HORSESFORSALE
  2919. Input #1,MEET
  2920. Input #1,RACE
  2921. Input #1,RACENUMBER
  2922. Dec P : Locate 17,21 : Print P;" "
  2923. Wait 15
  2924. Erase 3
  2925. Fade 20
  2926. Wait 50
  2927. Screen Close 4
  2928. Close 1
  2929. Screen Show 0
  2930. 'Dir$=OLDIR$ 
  2931. End Proc
  2932. '=========================================== 
  2933. Procedure _CHECKFILES
  2934. Dir$=_DIR$
  2935. MF=0
  2936. M$="IS MISSING OR HAS BEEN TAMPERED WITH!"
  2937. A$="punter.doc"
  2938. If Not Exist(A$) Then MF=1 : Goto BOLLOCKER
  2939. A$="punter_files/gallop.abk"
  2940. If Not Exist(A$) Then MF=1 : Goto BOLLOCKER
  2941. A$="punter_files/key.iff"
  2942. If Not Exist(A$) Then MF=1 : Goto BOLLOCKER
  2943. A$="punter_files/loading.abk"
  2944. If Not Exist(A$) Then MF=1 : Goto BOLLOCKER
  2945. A$="punter_files/mod.punter"
  2946. If Not Exist(A$) Then MF=1 : Goto BOLLOCKER
  2947. A$="punter_files/samples.abk"
  2948. If Not Exist(A$) Then MF=1 : Goto BOLLOCKER
  2949. A$="punter_files/select.abk"
  2950. If Not Exist(A$) Then MF=1 : Goto BOLLOCKER
  2951. A$="punter_files/saving.abk"
  2952. If Not Exist(A$) Then MF=1 : Goto BOLLOCKER
  2953. A$="punter_files/track_bot.abk"
  2954. If Not Exist(A$) Then MF=1
  2955. '
  2956. '
  2957. BOLLOCKER:
  2958. If MF=1
  2959. Unpack 2 To 0 : Paper 0 : Locate 0,26 : Centre A$
  2960. Print : Centre M$ : Clear Key : Wait Key : Load "you bastard"
  2961. End If 
  2962. End Proc
  2963. '========================================================================= 
  2964. '                           THE VARIABLES
  2965. '                          --------------- 
  2966. '               Note:These are just the major vars used
  2967. '==========================================================================
  2968. 'DIMENSIONED ARRAYS= 
  2969. '=================== 
  2970. 'AGE(100)     =Age of each horse starts at 4,5 or 6 year old 
  2971. 'BESTCOURSE(8)=Favoured course by each horse in current race 
  2972. 'BETDIST(8)   =Favoured distance by each horse in current race 
  2973. 'BESTGOING(8) =Favoured going by each horse in current race  
  2974. 'BTYPE(4)     =Bet type made by current player (pturn) 1=win 2=e/w 3=sfc 4=rfc 
  2975. 'BUP(4)       =Temporary storage of current players cash in case cancel bet  
  2976. 'DRW$(15)     =Draw advantage Ie. LOW or HIGH etc. 
  2977. 'DIST(8)      =Holds the 8 different race distances: 5F,6F,7F,8F,10F,12F,14F,16F 
  2978. 'FFIGS$(100)  =Last six form figs of each horse ie: 00012L  (L=last)   
  2979. 'FOM$(100,25) =Store race details of last 25 races of each horse, 2500 
  2980. 'GOING$(5)    =Going HEAVY,SOFT,GOOD,FIRM and HARD 
  2981. 'Hor$(8)      =for current race: 000000 NAME TRAINER AGE WEIGHT JOCKEY ODDS  
  2982. 'H$(100)      =000000 NAME TRAINER AGE WEIGHT  
  2983. 'HLIST(25)    =Current horses for sale 
  2984. 'HB(4)        =HB(pturn) =1 if player pturn has had any sort of bet, 0 otherwise   
  2985. 'HCHAR$(100)  =Charachteristic of each horse eg: "C05D05G01"C=Course no.05 favoured,Disance no.05,Going 01.  
  2986. 'HORSE$(100)  =The original 100 names of the horses.   
  2987. 'IRO(8)       =Used as a new variable to tweak odds to run race so not exactly run to odds 
  2988. 'JOCK$(25)    =The 25 jockeys names.   
  2989. 'J$(8)        =Store the jockeys names for current race.   
  2990. 'JR(25)       =equals 1 if jockey riding in current race 
  2991. 'JRIDE(25)    =Amount of rides each jockey has had 
  2992. 'JWINS(25)    -Amount of wins each jockey has had
  2993. 'LTHS(8)      =Dist between each horses finishing position for photo purposes. 
  2994. 'MEETING$(15) =The 15 course names.  
  2995. 'MM(100)      = Races run so far??????????/ see RNS()  
  2996. 'ODD(8)       =IDIVIDUALS ODDS OF EACH HORSE FOR THE CURRENT RACE ONLY.  
  2997. 'OWN1(100)    =If equal 1 then player 1 owns horse 
  2998. 'OWN2(100)    =                       2
  2999. 'OWN3(100)    =                       3
  3000. 'OWN4(100)    =                       4
  3001. 'PCASH(4)     =Current players cash, PCASH(PTURN)= 
  3002. 'PM(100)      =Prize money won counter for each of the hundred horses  
  3003. 'PBET(4)      =If =1 then player 1 has had a bet if 2 etc. 
  3004. 'P(8)         =Finishing position of horses after race p(1)=number of horse come first etc.
  3005. 'PSTAKE(4)    =How nmuch staked by each player on current bet  
  3006. 'POS$(8)      =Just a way of printing 1st, 2nd, 3rd etc. up to 8th for race result screen.     
  3007. 'PTS(8)       =A points sytem used to weigh up a horses chance in a race according to course/dist/weight/odds etc. 
  3008. 'RATMET(100)  =Makes sure same horse doesnt run twice at one meeting in the same week=1 if already raced at that meeting.  
  3009. 'RATING(8)    =Used by form man to rate a horses chance.   
  3010. 'RNS(100)     =Total races run in during whole game by each horse  
  3011. 'RNNING(8)    =How many horses (4 to 8) are running in current race  
  3012. 'RF1(4)       =same as SF1 but applies to Reversed forcast   
  3013. 'RF2(4)       =Ditto   
  3014. 'SF1(4)       =If had a sfc bet SF1(pturn) gives horse chossen to come first   
  3015. 'SF2(4)       =As above but this holds the horse to comesecond   
  3016. 'SLIST(25)    =Storage list of current horses for sale 
  3017. 'TRAINER$(25) =The names of the 25 trainers. 
  3018. 'TEMP(25)     =Used to temporary hold some variables during rnd selection  
  3019. 'USERETAINER(4=If player has retained a jockey for the season
  3020. 'VU(25)       =Value of a horse for sale 
  3021. 'WEIGHT$(100) =The weight of each horse.   
  3022. 'WINS(100)    =Races won by each horse counter 
  3023. 'XB(8)        =Used in calculations with LTHS to work out photo after race.
  3024. 'Z$(6)        =Used in form figures calculations.
  3025. '------------------------------------------------------------------------------------
  3026. 'Some OF The OTHER VARS= 
  3027. '------------------------  
  3028. 'D$           =Used in inserting a new form figure 
  3029. 'DAW$         =Temp hold the current draw advantage for the meeting. 
  3030. 'DI           =Holds the curent distance of race. DIST(DI) 
  3031. 'DIFF         =Difficulty level 1-3 EASY NORMAL PRO
  3032. 'ERR          =If=1 then error of some sort, used in various routines
  3033. 'FCOUNT       =Used in calculations for selecting a horse for sale.
  3034. 'FIRSTLOOK    =Is it first time player has looked at horses for sale?
  3035. 'GO           =????? 
  3036. 'GOIN         =Rnd going 1-4 GOING$(GOIN)
  3037. 'GG$          =Holds current going GG$=GOING$(GOIN)
  3038. 'HCOUNT       =Current horses left to sell this time 
  3039. 'HORSESFORSALE=Total of all horses left for sale 
  3040. 'HFS          =Current amount of horses for sale 
  3041. 'HFOS         =Current amount of horses for sale 
  3042. 'M$           =M$=Meeting$(MEET) current meeting 
  3043. 'MEN          =Menu pointer 1= menu 1 etc. on racecard 
  3044. 'MEET         =Counter to see what meeting it is meeting$(meet)
  3045. 'MEETING      =not used
  3046. 'p1OWNS       =How many horses player 1 owns, max 24 
  3047. 'P2OWNS       =                       2
  3048. 'P3OWNS       =                       3
  3049. 'P4OWNS       =                       4
  3050. 'P1HR         =Does player 1 have a runner in this race? 
  3051. 'P2HR         =            2 
  3052. 'P3HR         =            3 
  3053. 'P4HR         =            4 
  3054. 'PB$          =Get type of bet and stake and put in PB$
  3055. 'PB2$         =Get horse number
  3056. 'PB3$         =Horse name
  3057. 'PLPART       =Total of place part of winning E/W bet    
  3058. 'PLYRS        =Amount of Players in game 1-4 
  3059. 'PTURN        =What players turn it currently is 1-4 
  3060. 'PRIZEMONEY   =total of prizemoney for current race
  3061. 'QUIT         =If 1 then then player selected quit game
  3062. 'RACE         =Race count up to 6 for a meeting then loop to 1 
  3063. 'RACENUMBER   =Total number of ALL races run during game 
  3064. 'RNNERS       =Total runners in current race 4-8 
  3065. 'SEASON       =Season counter  
  3066. 'STKE         =not used
  3067. 'WINPART      =Win part of a succesful E/W bet 
  3068. '=============================================================================